At the Center for Applied Linguistics we produce test administration and training materials for each preK-12 ELL test series that is developed. These materials include a Test Administration Manual, sample items, and other related support materials. We work closely with the Test Development team to ensure that the test administration materials are accurate and up-to-date, and provide test administrators with clear instructions for administering our tests.
To do this effectively, we communicate and collaborate with our project partners to update our training materials and revise manuals, to ensure that all materials are user-friendly for both experienced and novice test administrators. Test administration training materials need to provide test administrators with an understanding of the test to be administered, as well as all the procedures involved in test administration. Our goal is to draft clear and comprehensible instructions, so that the test administrators are able to effectively administer each test, which also ensures greater standardization and reliability in the administration and scoring of the tests.
Additionally, with the creation of each new test series, we develop a corresponding set of training materials and test administration materials, and provide interactive training sessions for new test administrators. These training sessions provide an engaging introduction to the test, as well as a thorough overview of test administration procedures. Test administrators are able to engage with the test and ask questions, as well as practice administering the test and receive immediate feedback. We believe our clients are best served when test administrators leave the trainings confident in their ability to administer each test.
With the suite of services offered, we ensure that all test administrators have the background knowledge and experience required to confidently administer each test, as well as the resources available to them to refresh their test administration skills, or learn about new developments in test administration.


Lovecraft's books and stories were impressive enough to find its way through other mediums, including video games. Beyond everything that Lovecraft created, the world that he has drawn in his stories isn't something that directors in other mediums could ignore it, specially if they are working on a title within supernatural horror genre. However, Lovecraftian games aren't always able to achieve the goals behind the studio's thoughts, but Frogwares, the team behind Sherlock Holmes video game series, is eager to bring a breath-taking experience of a Lovecraftian world and story with The Sinking City.
While players should've been played The Sinking City so far, Frogwares decided to delay the game and release it in the last week of June instead of March. Anyway, the development has provided you a new video in collaboration with Game Informer, to showcase 15 minutes of the game's gameplay in which you get to know the world, characters and mechanics in a more detailed way, but keep it in mind that watching the trailer below will spoil you some story events.
The Sinking City follows the story of an investigator who travels to Oakmont in Massachusetts and encounters with some supernatural events that are affecting the city and its inhabitants in a mysterious way. While the investigator himself is somehow triggered with his own horrifying visions, tries to find out what causes him and people within the city to behave strangely.
The Sinking City features different gameplay mechanics like reconstructing the crime scenes, in order to give you more abilities during your missions to solve problems correctly and choose wisely.
The Sinking City is set to be released on June 27 for PS4, Xbox One and PC.
Follow Gaming Instincts on Twitter for more news and also don't forget to check out our reviews and other exclusive videos on Youtube.


text:
Q: Perl6 Exception handling print X::AdHoc message on the CATCH section Suppose I have the following code:
try {

    X::Any.new(payload => 'Error !',message => "fff").throw;
    #  die "message";

    CATCH {
        #  when X::HTTP { say $_.url(); }
        when X::AdHoc { say $_; }
    }
}

How can I print the message or the payload? I tried the following :
say $_.message ;
say $_.payload ;

but it didn't work.

A: X::AdHoc.new(payload=>"anything that got .Str").throw;

CATCH {
    default {
        printf('"%s", "%s", "%s"', .^name, .payload.^name, .message)
    }
}

# OUTPUT«"X::AdHoc", "Str", "anything that got .Str"»

A: If your interested in a minimalist way...
A CATCH block turns its enclosing block into a try block so the "try { ... }" is redundant.  Within the CATCH block you have an implicit perl6 switch statement with the exception object as the topic.  This is why "when" and "default" keywords can be used.  Finally, exception objects stringify to their message attribute which gives us;
CATCH {
   default { .say }
}

Replace .say with .payload.say to get the payload.

redpajama_set_name: RedPajamaStackExchange


Build a nice country home on this lovely 10 acres.There's a nice spot that's high & dry with several nice pines, towards the front .Enjoy some great hunting right from your new home.Nice parcel, in a quiet area.Lower brushy areas out back for hunting.329 x 1324$39,800No Lease, No Land ContractCall Listing Broker to Walk This Property & For Aerial.Speaker Rd. Lynn TownshipNorthern St. Clair County, 7 Miles North of Capac.1 Mile East of Capac Rd. and 1 Mile South of Yale Rd.
IDX provided courtesy of Realcomp II Ltd., via Just Land Sales and Realcomp, ©2019 Realcomp II Ltd. Shareholders.


Perfectly polished Cufflinks for your perfectly polished attire. This Cufflink set is sterling rounds, framed with a twist of gold for a classic accent. Engraving is optional: $20 for the first 5 letters and $1.50 per letter after. Please enter initials in Name Order: First, Middle, then Last. Allow five business days for engraving.


- Regular reporting from SAP of Audit staff to ensure accuracy throughout the practice.
-Communication with Audit staff who appear on non-attendance reports as well as their Performance Managers.
- Maintaining list of course information and maintenance of the on the L&D website/portal.
- Monitoring very busy email accounts, answering queries promptly and filing of all correspondence.
- Regularly review procedures with a view to improving processes.
- Ad hoc administration and project support for the Learning and Development team.
- Working with Learning deployment operations administrators provide onsite support for high profile events.
- Intermediate knowledge of MS Office (Word, PowerPoint and SharePoint).
- Proven excel user who can confidently compare reports, use vLook up, produce pivot tables and formulae.


Micron Video International was founded in 1989 by Tony Waring when teaching correct procedures for donning cleanroom garments to a group of employees.
Two issues became apparent; there was a language barrier between the trainer and the trainees and also there could not be guaranteed consistency in the delivery of the information with every session. Both of these issues led to the development of Micron Video International. Video solved these issues and more and we've been building on that success ever since.
Micron Training aims to continue providing robust and relevant off-the-shelf learning programs for regulated industries. We also look to research and improve our delivery formats and content design to maximize the return on investment for our customers.
At Micron we approach every project, regardless of scale, with the same structured process. Whether making one of our off-the-shelf training programs or a totally unique client centred product, the processes involved are very similar.


text:
package net.sf.kraken.protocols.msn;

import java.io.IOException;
import java.util.Arrays;
import java.util.Date;

import net.sf.jml.DisplayPictureListener;
import net.sf.jml.MsnContact;
import net.sf.jml.MsnContactPending;
import net.sf.jml.MsnGroup;
import net.sf.jml.MsnList;
import net.sf.jml.MsnMessenger;
import net.sf.jml.MsnObject;
import net.sf.jml.MsnSwitchboard;
import net.sf.jml.event.MsnContactListListener;
import net.sf.jml.event.MsnEmailListener;
import net.sf.jml.event.MsnMessageListener;
import net.sf.jml.event.MsnMessengerListener;
import net.sf.jml.event.MsnSwitchboardListener;
import net.sf.jml.exception.IncorrectPasswordException;
import net.sf.jml.exception.LoginException;
import net.sf.jml.exception.MsgNotSendException;
import net.sf.jml.exception.MsnProtocolException;
import net.sf.jml.exception.UnknownMessageException;
import net.sf.jml.exception.UnsupportedProtocolException;
import net.sf.jml.message.MsnControlMessage;
import net.sf.jml.message.MsnDatacastMessage;
import net.sf.jml.message.MsnEmailActivityMessage;
import net.sf.jml.message.MsnEmailInitEmailData;
import net.sf.jml.message.MsnEmailInitMessage;
import net.sf.jml.message.MsnEmailNotifyMessage;
import net.sf.jml.message.MsnInstantMessage;
import net.sf.jml.message.MsnSystemMessage;
import net.sf.jml.message.MsnUnknownMessage;
import net.sf.jml.message.p2p.DisplayPictureRetrieveWorker;
import net.sf.jml.message.p2p.MsnP2PMessage;
import net.sf.jml.net.Session;
import net.sf.jml.net.SessionListener;
import net.sf.kraken.avatars.Avatar;
import net.sf.kraken.type.ConnectionFailureReason;
import net.sf.kraken.type.TransportLoginStatus;
import net.sf.kraken.util.chatstate.ChatStateEventSource;

import org.jivesoftware.util.JiveGlobals;
import org.jivesoftware.util.LocaleUtils;
import org.jivesoftware.util.NotFoundException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;
import org.xmpp.packet.Presence;

/**
 * MSN Listener Interface.
 *
 * This handles real interaction with MSN, but mostly is a listener for
 * incoming events from MSN.
 *
 * @author Daniel Henninger
 */
public class MSNListener implements MsnContactListListener, MsnMessageListener, MsnMessengerListener,
                                    MsnSwitchboardListener, MsnEmailListener, SessionListener {

    static Logger Log = LoggerFactory.getLogger( MSNListener.class);

    /**
     * Creates the MSN Listener instance.
     *
     * @param session Session this listener is associated with.
     */
    public MSNListener(MSNSession session) {
        //this.msnSessionRef = new WeakReference<MSNSession>(session);
        this.msnSession = session;
    }

    /**
     * The session this listener is associated with.
     */
    //public WeakReference<MSNSession> msnSessionRef = null;
    public MSNSession msnSession = null;

    /**
     * Returns the MSN session this listener is attached to.
     *
     * @return MSN session we are attached to.
     */
    public MSNSession getSession() {
        //return msnSessionRef.get();
        return msnSession;
    }

    /**
     * Handles incoming messages from MSN users.
     */
    public void instantMessageReceived(MsnSwitchboard switchboard, MsnInstantMessage message, MsnContact friend) {
        getSession().getTransport().sendMessage(
                getSession().getJID(),
                getSession().getTransport().convertIDToJID(friend.getEmail().toString()),
                message.getContent()
        );

        // TODO: this will cause a duplicate chat state message to be sent. Prevent this!
        final JID to = getSession().getJID();
        final JID from = getSession().getTransport().convertIDToJID(friend.getEmail().toString());
        getSession().getTransport().getChatStateEventSource().isActive(from, to);
    }

    /**
     * Handles incoming system messages from MSN.
     *
     * @param messenger Messenger session the message is associated with.
     * @param message MSN message.
     */
    public void systemMessageReceived(MsnMessenger messenger, MsnSystemMessage message) {
        getSession().getTransport().sendMessage(
                getSession().getJID(),
                getSession().getTransport().getJID(),
                message.getContent()
        );
    }

    /**
     * Handles incoming control messages from MSN.
     */
    public void controlMessageReceived(MsnSwitchboard switchboard, MsnControlMessage message, MsnContact friend) {
        if (message.getTypingUser() != null) {
            final JID to = getSession().getJID();
            final JID from = getSession().getTransport().convertIDToJID(friend.getEmail().toString());
            getSession().getTransport().getChatStateEventSource().isComposing(from, to);
        }
        else {
            Log.debug("MSN: Received unknown control msg to " + switchboard + " from " + friend + ": " + message);
        }
    }

    /**
     * Handles incoming datacast messages from MSN.
     */
    public void datacastMessageReceived(MsnSwitchboard switchboard, MsnDatacastMessage message, MsnContact friend) {
        final JID to = getSession().getJID();
        final JID from = getSession().getTransport().convertIDToJID(friend.getEmail().toString());
        if (message.getId() == 1) {
            final String msg = LocaleUtils.getLocalizedString("gateway.msn.nudge", "kraken");
            getSession().getTransport().sendAttentionNotification(to, from, msg);
        }
        else if (message.getId() == 2) {
            final String msg = LocaleUtils.getLocalizedString("gateway.msn.wink", "kraken");
            getSession().getTransport().sendAttentionNotification(to, from, msg);
        }
        else {
            Log.debug("MSN: Received unknown datacast message to " + switchboard + " from " + friend + ": " + message);
        }
    }

    /**
     * Handles incoming unknown messages from MSN.
     */
    public void unknownMessageReceived(MsnSwitchboard switchboard, MsnUnknownMessage message, MsnContact friend) {
        Log.debug("MSN: Received unknown message to " + switchboard + " from " + friend + ": " + message);
    }

    public void initialEmailNotificationReceived(MsnSwitchboard switchboard, MsnEmailInitMessage message, MsnContact contact) {
        Log.debug("MSN: Got init email notify "+message.getInboxUnread()+" unread message(s)");
        if (JiveGlobals.getBooleanProperty("plugin.gateway.msn.mailnotifications", true) && message.getInboxUnread() > 0) {
            getSession().getTransport().sendMessage(
                    getSession().getJID(),
                    getSession().getTransport().getJID(),
                    LocaleUtils.getLocalizedString("gateway.msn.initialmail", "kraken", Arrays.asList(message.getInboxUnread())),
                    Message.Type.headline
            );
        }
    }

    public void initialEmailDataReceived(MsnSwitchboard switchboard, MsnEmailInitEmailData message, MsnContact contact) {
        Log.debug("MSN: Got init email data "+message.getInboxUnread()+" unread message(s)");
        if (JiveGlobals.getBooleanProperty("plugin.gateway.msn.mailnotifications", true) && message.getInboxUnread() > 0) {
            getSession().getTransport().sendMessage(
                    getSession().getJID(),
                    getSession().getTransport().getJID(),
                    LocaleUtils.getLocalizedString("gateway.msn.initialmail", "kraken", Arrays.asList(message.getInboxUnread())),
                    Message.Type.headline
            );
        }
    }

    public void newEmailNotificationReceived(MsnSwitchboard switchboard, MsnEmailNotifyMessage message, MsnContact contact) {
        Log.debug("MSN: Got new email notification from "+message.getFrom()+" <"+message.getFromAddr()+">");
        if (JiveGlobals.getBooleanProperty("plugin.gateway.msn.mailnotifications", true)) {
            getSession().getTransport().sendMessage(
                    getSession().getJID(),
                    getSession().getTransport().getJID(),
                    LocaleUtils.getLocalizedString("gateway.msn.mail", "kraken", Arrays.asList(message.getFrom(), message.getFromAddr(), message.getSubject())),
                    Message.Type.headline
            );
        }
    }

    public void activityEmailNotificationReceived(MsnSwitchboard switchboard, MsnEmailActivityMessage message, MsnContact contact) {
        Log.debug("MSN: Got email activity notification "+message.getSrcFolder()+" to "+message.getDestFolder());
    }

    /**
     * The user's login has completed and was accepted.
     */
    public void loginCompleted(MsnMessenger messenger) {
        Log.debug("MSN: Login completed for "+messenger.getOwner().getEmail());
        getSession().setLoginStatus(TransportLoginStatus.LOGGED_IN);
    }

    /**
     * Contact list has been synced.
     */
    public void contactListSyncCompleted(MsnMessenger messenger) {
        Log.debug("MSN: Contact list sync for "+messenger.getOwner().getEmail());
    }

    /**
     * Contact list initialization has completed.
     */
    public void contactListInitCompleted(MsnMessenger messenger) {
        for (MsnGroup msnGroup : messenger.getContactList().getGroups()) {
            Log.debug("MSN: Got group "+msnGroup);
            getSession().storeGroup(msnGroup);
        }
        for (MsnContact msnContact : messenger.getContactList().getContacts()) {
            Log.debug("MSN: Got contact "+msnContact);
            if (msnContact.isInList(MsnList.FL) && msnContact.getEmail() != null) {
                final MSNBuddy buddy = new MSNBuddy(getSession().getBuddyManager(), msnContact);
                getSession().getBuddyManager().storeBuddy(buddy);
                if (JiveGlobals.getBooleanProperty("plugin.gateway.msn.avatars", true)) {
                    final MsnObject msnAvatar = msnContact.getAvatar();
                    if (msnAvatar != null && (buddy.getAvatar() == null || !buddy.getAvatar().getLegacyIdentifier().equals(msnAvatar.getSha1c()))) {
                        try {
                            messenger.retrieveDisplayPicture(msnAvatar,
                                    new DisplayPictureListener() {

                                        public void notifyMsnObjectRetrieval(
                                                MsnMessenger messenger,
                                                DisplayPictureRetrieveWorker worker,
                                                MsnObject msnObject,
                                                ResultStatus result,
                                                byte[] resultBytes,
                                                Object context) {

                                            Log.debug("MSN: Got avatar retrieval result: "+result);

                                            // Check for the value
                                            if (result == ResultStatus.GOOD) {

                                                try {
                                                    Log.debug("MSN: Found avatar of length "+resultBytes.length);
                                                    Avatar avatar = new Avatar(buddy.getJID(), msnAvatar.getSha1c(), resultBytes);
                                                    buddy.setAvatar(avatar);
                                                }
                                                catch (IllegalArgumentException e) {
                                                    Log.debug("MSN: Got null avatar, ignoring.");
                                                }
                                            }
                                        }
                                    });
                        }
                        catch (Exception e) {
                            Log.debug("MSN: Unable to retrieve MSN avatar: ", e);
                        }

                    }
                    else if (buddy.getAvatar() != null && msnAvatar == null) {
                        buddy.setAvatar(null);
                    }
                }
            }
        }
        getSession().syncUsers();
    }

    /**
     * A friend for this user has changed status.
     */
    public void contactStatusChanged(MsnMessenger messenger, MsnContact friend) {
        if (!friend.isInList(MsnList.FL) || friend.getEmail() == null) {
            // Not in our buddy list, don't care, or null email address.  We need that.
            return;
        }
        if (getSession().getBuddyManager().isActivated()) {
            try {
                final MSNBuddy buddy = getSession().getBuddyManager().getBuddy(getSession().getTransport().convertIDToJID(friend.getEmail().toString()));
                buddy.setPresenceAndStatus(((MSNTransport)getSession().getTransport()).convertMSNStatusToXMPP(friend.getStatus()), friend.getPersonalMessage());
                buddy.setMsnContact(friend);
                if (JiveGlobals.getBooleanProperty("plugin.gateway.msn.avatars", true)) {
                    final MsnObject msnAvatar = friend.getAvatar();
                    if (msnAvatar != null && (buddy.getAvatar() == null || !buddy.getAvatar().getLegacyIdentifier().equals(msnAvatar.getSha1c()))) {
                        try {
                            messenger.retrieveDisplayPicture(msnAvatar,
                                    new DisplayPictureListener() {

                                        public void notifyMsnObjectRetrieval(
                                                MsnMessenger messenger,
                                                DisplayPictureRetrieveWorker worker,
                                                MsnObject msnObject,
                                                ResultStatus result,
                                                byte[] resultBytes,
                                                Object context) {

                                            Log.debug("MSN: Got avatar retrieval result: "+result);

                                            // Check for the value
                                            if (result == ResultStatus.GOOD) {

                                                try {
                                                    Log.debug("MSN: Found avatar of length "+resultBytes.length);
                                                    Avatar avatar = new Avatar(buddy.getJID(), msnAvatar.getSha1c(), resultBytes);
                                                    buddy.setAvatar(avatar);
                                                }
                                                catch (IllegalArgumentException e) {
                                                    Log.debug("MSN: Got null avatar, ignoring.");
                                                }
                                            }
                                        }
                                    });
                        }
                        catch (Exception e) {
                            Log.debug("MSN: Unable to retrieve MSN avatar: ", e);
                        }

                    }
                    else if (buddy.getAvatar() != null && msnAvatar == null) {
                        buddy.setAvatar(null);
                    }
                }
            }
            catch (NotFoundException e) {
                // Not in our contact list.  Ignore.
                Log.debug("MSN: Received presense notification for contact we don't care about: "+friend.getEmail().toString());
            }
        }
        else {
            getSession().getBuddyManager().storePendingStatus(getSession().getTransport().convertIDToJID(friend.getEmail().toString()), ((MSNTransport)getSession().getTransport()).convertMSNStatusToXMPP(friend.getStatus()), friend.getPersonalMessage());
        }
    }

    /**
     * Someone added us to their contact list.
     */
    public void contactAddedMe(MsnMessenger messenger, MsnContact friend) {
        Log.debug("MSN: Contact added me: "+ friend.getFriendlyName());

        final JID from = getSession().getTransport().convertIDToJID(friend.getEmail().toString());

        final Presence p = new Presence();
        p.setType(Presence.Type.subscribe);
        p.setTo(getSession().getJID());
        p.setFrom(from);

        getSession().getTransport().sendPacket(p);
    }

    /**
     * Someone removed us from their contact list.
     */
    public void contactRemovedMe(MsnMessenger messenger, MsnContact friend) {
        Log.debug("MSN: Contact removed me: "+ friend.getFriendlyName());

        Presence p = new Presence();
        p.setType(Presence.Type.unsubscribe);
        p.setTo(getSession().getJID());
        p.setFrom(getSession().getTransport().convertIDToJID(friend.getEmail().toString()));
        getSession().getTransport().sendPacket(p);
    }

    /**
     * A contact we added has been added to the server.
     */
    public void contactAddCompleted(MsnMessenger messenger, MsnContact contact, MsnList list) {
        Log.debug("MSN: Contact add completed: "+contact);
//        Presence p = new Presence();
//        p.setType(Presence.Type.subscribed);
//        p.setTo(getSession().getJID());
//        p.setFrom(getSession().getTransport().convertIDToJID(contact.getEmail().toString()));
//        getSession().getTransport().sendPacket(p);
        getSession().completedPendingContactAdd(contact);
    }

    /**
     * A contact we removed has been removed from the server.
     */
    public void contactRemoveCompleted(MsnMessenger messenger, MsnContact contact, MsnList list) {
        Log.debug("MSN: Contact remove completed: "+contact);
//        Presence p = new Presence();
//        p.setType(Presence.Type.unsubscribed);
//        p.setTo(getSession().getJID());
//        p.setFrom(getSession().getTransport().convertIDToJID(contact.getEmail().toString()));
//        getSession().getTransport().sendPacket(p);
    }

    /**
     * A group we added has been added to the server.
     */
    public void groupAddCompleted(MsnMessenger messenger, MsnGroup group) {
        Log.debug("MSN: Group add completed: "+group);
        getSession().storeGroup(group);
        getSession().completedPendingGroupAdd(group);
    }

    /**
     * A group we removed has been removed from the server.
     */
    public void groupRemoveCompleted(MsnMessenger messenger, MsnGroup group) {
        Log.debug("MSN: Group remove completed: "+group);
        getSession().unstoreGroup(group);
    }

    /**
     * Owner status has changed.
     */
    public void ownerStatusChanged(MsnMessenger messenger) {
        //getSession().setPresenceAndStatus(((MSNTransport)getSession().getTransport()).convertMSNStatusToXMPP(messenger.getOwner().getStatus()), messenger.getOwner().getPersonalMessage());
    }

    /**
     * Catches MSN exceptions.
     */
    public void exceptionCaught(MsnMessenger messenger, Throwable throwable) {
        Log.debug("MSN: Exception occurred for "+messenger.getOwner().getEmail()+" : "+throwable);
        if (throwable instanceof IncorrectPasswordException) {
            getSession().setLoginStatus(TransportLoginStatus.DISCONNECTED);
            getSession().setFailureStatus(ConnectionFailureReason.USERNAME_OR_PASSWORD_INCORRECT);
            getSession().sessionDisconnectedNoReconnect(LocaleUtils.getLocalizedString("gateway.msn.passwordincorrect", "kraken"));
        }
        else if (throwable instanceof LoginException) {
            // This can be a number of things, but generally it's a failed username and password.
            getSession().setLoginStatus(TransportLoginStatus.DISCONNECTED);
            getSession().setFailureStatus(ConnectionFailureReason.USERNAME_OR_PASSWORD_INCORRECT);
            getSession().sessionDisconnectedNoReconnect(LocaleUtils.getLocalizedString("gateway.msn.passwordincorrect", "kraken"));
        }
        else if (throwable instanceof MsnProtocolException) {
            Log.debug("MSN: Protocol exception: "+throwable.toString());
        }
        else if (throwable instanceof MsgNotSendException) {
            getSession().getTransport().sendMessage(
                    getSession().getJID(),
                    getSession().getTransport().getJID(),
                    LocaleUtils.getLocalizedString("gateway.msn.sendmsgfailed", "kraken")+" "+throwable.toString(),
                    Message.Type.error
            );
        }
        else if (throwable instanceof UnknownMessageException) {
            Log.debug("MSN: Unknown message: "+throwable.toString());
        }
        else if (throwable instanceof UnsupportedProtocolException) {
            Log.debug("MSN: Protocol error: "+throwable.toString());
        }
        else if (throwable instanceof IOException) {
            Log.debug("MSN: IO error: "+throwable.toString());
            getSession().setLoginStatus(TransportLoginStatus.DISCONNECTED);
            getSession().setFailureStatus(ConnectionFailureReason.CAN_NOT_CONNECT);
            getSession().sessionDisconnected(LocaleUtils.getLocalizedString("gateway.msn.disconnect", "kraken"));
        }
        else {
            Log.debug("MSN: Unknown error: "+throwable.toString(), throwable);
        }
    }

    public void contactAddInGroupCompleted(MsnMessenger arg0, MsnContact arg1,
            MsnGroup arg2) {
        // TODO Auto-generated method stub

    }

    public void contactAddedMe(MsnMessenger arg0, MsnContactPending[] arg1) {
        // TODO Auto-generated method stub

    }

    public void contactPersonalMessageChanged(MsnMessenger arg0, MsnContact arg1) {
        // TODO Auto-generated method stub

    }

    public void contactRemoveFromGroupCompleted(MsnMessenger arg0,
            MsnContact arg1, MsnGroup arg2) {
        // TODO Auto-generated method stub

    }

    public void ownerDisplayNameChanged(MsnMessenger arg0) {
        // TODO Auto-generated method stub

    }

    public void offlineMessageReceived(String arg0, String arg1, String arg2,
            MsnContact arg3) {
        // TODO Auto-generated method stub

    }

    public void p2pMessageReceived(MsnSwitchboard arg0, MsnP2PMessage arg1,
            MsnContact arg2) {
        // TODO Auto-generated method stub

    }

    public void logout(MsnMessenger arg0) {
        // TODO Auto-generated method stub

    }

    public void contactJoinSwitchboard(MsnSwitchboard arg0, MsnContact arg1) {
        // TODO Auto-generated method stub

    }

    public void contactLeaveSwitchboard(MsnSwitchboard arg0, MsnContact arg1) {
        final JID to = getSession().getJID();
        final JID from = getSession().getTransport().convertIDToJID(arg1.getEmail().toString());
        getSession().getTransport().getChatStateEventSource().isGone(from, to);
    }

    public void switchboardClosed(MsnSwitchboard arg0) {
        // TODO Auto-generated method stub

    }

    public void switchboardStarted(MsnSwitchboard arg0) {
        // TODO Auto-generated method stub

    }

    public void exceptionCaught(Session arg0, Throwable t) throws Exception{
        Log.debug("MSN: Session exceptionCaught for "+getSession().getRegistration().getUsername()+" : "+t);
    }

    public void messageReceived(Session arg0, net.sf.jml.net.Message message) throws Exception {
        Log.debug("MSN: Session messageReceived for "+getSession().getRegistration().getUsername()+" : "+message);
        // TODO: Kinda hacky, would like to improve on this later.
        if (message.toString().startsWith("OUT OTH")) {
            // Forced disconnect because account logged in elsewhere
            getSession().setLoginStatus(TransportLoginStatus.DISCONNECTED);
            getSession().setFailureStatus(ConnectionFailureReason.LOCKED_OUT);
            getSession().sessionDisconnectedNoReconnect(LocaleUtils.getLocalizedString("gateway.msn.otherloggedin", "kraken"));
        }
        else if (message.toString().startsWith("OUT SDH")) {
            // Forced disconnect from server for maintenance
            getSession().setLoginStatus(TransportLoginStatus.DISCONNECTED);
            getSession().setFailureStatus(ConnectionFailureReason.LOCKED_OUT);
            getSession().sessionDisconnectedNoReconnect(LocaleUtils.getLocalizedString("gateway.msn.disconnect", "kraken"));
        }
    }

    public void messageSent(Session arg0, net.sf.jml.net.Message message) throws Exception {
        Log.debug("MSN: Session messageSent for "+getSession().getRegistration().getUsername()+" : "+message);
    }

    public void sessionIdle(Session session) throws Exception {
    }

    public void sessionEstablished(Session session) {
        Log.debug("MSN: Session established for "+getSession().getRegistration().getUsername());
    }

    public void sessionTimeout(Session session) {
        // This is used to handle regular pings to the MSN server.  No need to mention it.
    }

    public void sessionClosed(Session session) {
        Log.debug("MSN: Session closed for "+getSession().getRegistration().getUsername());
    }

}

redpajama_set_name: RedPajamaGithub


text:
The Informant: A True Story
Abridged / Go to Unabridged Audiobook
Written By: Kurt Eichenwald
Narrated By: Arthur Morey
Publisher: Random House (Audio)
From an award-winning New York Times investigative reporter comes a gripping account of one of the most captivating and bizarre tales in the history of the FBI and corporate America.
It was one of the FBI's biggest secrets: Mark Whitacre, a senior executive at Archer Daniels Midland--America's most politically powerful corporation--became a confidential government witness. Putting his career and family at risk, Whitacre, along with a small team of agents, tapped into secrets at ADM that led the FBI to discover the company's scheme to steal millions of dollars from its own customers.
But as the FBI and federal prosecutors closed in on ADM, they suddenly found that everything was not all that it appeared. While Whitacre was cooperating with the Feds and playing the role of loyal company man, he also had his own agenda. Whitacre became sucked into his own world of James Bond antics, imperiling the criminal case and creating a web of deceit that left the FBI and prosecutors uncertain where the lies stopped and the truth began.
Meticulously researched and richly told, The Informant re-creates the drama of the story, beginning with the secret recordings, stakeouts, and interviews with suspects and witnesses to the power struggles within ADM and its board--including the high-profile chairman Dwayne Andreas, F. Ross Johnson, and Brian Mulroney--to the big-gun Washington lawyers hired by ADM, and on up through the ranks of the Justice Department to FBI Director Louis Freeh and Attorney General Janet Reno.
A page-turning real-life thriller that features deadpan FBI agents, crooked executives, idealistic lawyers, and shady witnesses with an addiction to intrigue, The Informant tells an important and compelling story of power and betrayal in America
Business & Economics >
Informant: A True Story
by Kurt Eichenwald

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: using different borders on all sides of td Is it possible with css3 to apply borders on table, tr, td so it would look like it is drawn by hand similar to:

Currently, I'm trying like the following but which results in space between tds:

table{
  border-collapse: collapse;
  }
td{
  background: url(http://i.stack.imgur.com/ojaEj.png) no-repeat;
  background-size: 100% 100%;
  padding: 20px;
  }

    one
    two
    three

    one
    two
    three

    one
    two
    three

So, is there a way so I can use different borders on top right bottom and left of the tds?

A: You could do that by carefully crafting a table with no borders or background (so it's transparent) and using your hand-drawn graphic as a background.
If you design the background to be repeating (seamless) your table could even be dynamic.
table {
    background: url(http://i.stack.imgur.com/idN4k.jpg) -10px -15px repeat;
}
table td {
    padding: 20px 10px;
}

    one
    two
    three
    four

    one
    two
    three
    four

    one
    two
    three
    four

http://jsfiddle.net/nhur0uu0/
This could also be achieved with custom svg, but I would want to know more about what you are going for before I recommended it.

A: You might be able to achieve something like that with border-images and applying different border images to every Nth cell with the :nth-child selectors on both rows and columns, maybe with some prime numbers thrown in to obscure repetition.
This will require border-collapse:separate tables, so you'll also want zero border spacing.
The images will have to line up properly at the corners though, so the lines can't be quite as crooked as in your example

A: You could try setting negative margins as I did here.

table {
    border-collapse: collapse;
}
td {
    background: url(http://i.stack.imgur.com/ojaEj.png) no-repeat;
    background-size: 100% 100%;
    padding: 20px;
    margin: -9px -8px;
    display: inline-block;
}
tr {
    display: block;
}
tr:nth-child(2) {
    margin-left:4px;
}
tr:nth-child(3) {
    margin-left:8px;
}

    one
    two
    three

    one
    two
    three

    one
    two
    three

Not too pretty, but it works.


Group 2 herbicides exhibit high bioactivity at low concentrations in soil and may persist into the next growing season causing crop injury. A bioassay that is suitable for the detection of a range of Group 2 herbicides was developed; in this bioassay, a root growth inhibition of oriental mustard is used for the determination of the herbicide concentration in soil. The Group 2 herbicides included were: Everest (flucarbazone-sodium), Frontline (florasulam), Sundance (sulfosulfuron), and Odyssey (imazamox + imazethapyr). This bioassay was used to examine the degree of root inhibition by simultaneous application of two Group 2 herbicides. Application of varying levels of flucarbazone or sulfosulfuron combined with Odyssey resulted in root length inhibition that was comparable to the root length inhibition caused by application of flucarbazone alone or sulfosulfuron alone and Odyssey alone, possibly indicating an additive effect of these pairs of herbicides. Further studies are needed to examine which combinations of Group 2 herbicides under what environmental and soil conditions may result in "stacking" causing increased plant injury.


text:
Home /Home/The perfectly preserved remains of an Ice Age cave bear have been discovered in the Russian Arctic
Science & TechSeptember 16, 2020
The perfectly preserved remains of an Ice Age cave bear have been discovered in the Russian Arctic
The perfectly preserved remains of an Ice Age cave bear have been discovered in the Russian Arctic — the first example of the species ever to be found with soft tissues intact.
The astonishing find was made by reindeer herders on the Lyakhovsky Islands, which are part of the New Siberian islands archipelago in Russia's Far North.
Prior to this, only the bones of cave bears had been unearthed, but this specimen even had its nose intact, according to a team of scientists from the North-Eastern Federal University (NEFU) in Yakutsk, Siberia. The discovery is of "world importance," a leading Russian expert on extinct Ice Age species said.
India, Russia explore coop in…
CES 2023: Russian exhibitors barred…
What is the 'zombie virus'…
Russia is interested in cooperation…
Coronavirus: Putin memes flood social…
Russia all set to launch…
Egypt flouts sanctions as Russian…
UK and US say Russia…
Council take ownership of horse…
How you can be a…


text:
Paper Rating
DOI 10.1248/cpb.47.966
Journal CHEMICAL & PHARMACEUTICAL BULLETIN
Volume Volume 47
Year January 1999
Pages pp 966-970
Synthesis of 9-(2-Deoxy-2-fluoro-.BETA.-D-arabinofuranosyl)adenine Bearing a Selectively Removable Protecting Group.
Maruyama, T.; Takamatsu, S.; Kozai, S.; Satoh, Y.; Izawa, K.
Review Author
Synthesis of 2'-fluorinated nucleosides
The article presents a facile and practical method to prepare fluorinated nucleosides, which are known for antitumor and antiviral activity, through introducing fluorine at the up-side of the 2'-carbon of nucleosides.
Particularly, I used this synthetic route to obtain 9-(2-deoxy-2-fluoro-β-D-arabinofuranosyl)adenine (FdaraA) with some modifications.
Introducing a fluorine at the 2' (S)(ara) site of the nucleosides is very difficult. One key problem is the selectively protection of 3'- and 5'-hydroxyl group with appropriate protecting group (a group that is stable to the fluorine source during the fluorination step) and leaving the 2'-hydroxyl group intact. Traditionally, using trityl group to prepare 3', 5'-di-O-protected nucleosides gave poor yield due to the similar reactivity of 2'- and 3'-hydroxyl group and the preferential N7-tritylation of purine. In this regard, this paper provided an efficient and low-cost methodology to prepare 3',5'-di-O protected adenosine (compound 5a, scheme 1). I followed the reaction conditions and procedures reported in this article to obtain the 3'-O-protected derivative (compound 4a, scheme 1), and the actual yield is consistent with the reported yield. Furthermore, the purification procedure of 4a and 5a via crystallization in MeOH is simple and easy with high regioselectivity.
Protection of 5'-hydroxyl group with dimethoxy-trityl (DMTr) instead of the trityl group (Tr) reported in the article also showed the equal performance with similar yield (70% for DMTr vs 71% for 5a). Such replacement avoided the subsequently unnecessary work to prepare FdaraA phosphoramidite via de-protecting the trityl group and re-protecting the 5'-hydroxyl group, which can be incorporated into oligonucleotides directly.
The fluorination step gave similar yield as the yield of compound 6 (scheme 1) but with relatively low yield of deprotection step (53% with DMTr vs 73% for compound 7). This is due to the much lability of DMTr protection group compared to the Trityl group.
Rate this review:
Would you like to rate another?
You need at least {num_todo} more paper(s) in order for you to make your profile visible to recruiters and employers.
You have rated {num_rated} reviews.
You can continue with your Profile setup.
/review/index/l/133699/r/80 0.000000 0.000000
ES Review Search START 0.042042 0.071159
ES Review Search END 0.016961 0.088120


text:
SFG Awardees
Caylor Receives 2009 Early Career Hydrologic Sciences Award
Kelly K. Caylor received the 2009 Early Career Hydrologic Sciences Award at the 2009 AGU Fall Meeting, held 14–18 December in San Francisco, Calif. The award is for significant early contributions to hydrologic science.
It is a great pleasure to introduce Kelly Caylor, the first winner of the Early Career Hydrologic Sciences Award of AGU.
Kelly's career has focused primarily on the spatiotemporal interactions between surface hydrologic dynamics and plant ecology, and particularly on dryland ecosystems. While the emerging science of ecohydrology promises to clarify the resilience of ecosystems to anthropogenic and climatic perturbations, it is predicated on coupling advances in the theory of ecological pattern formation to improved observation of hydrological processes. Kelly has been a leader in developing frameworks capable of interpreting and predicting spatial pattern formation in dryland ecosystems. He has carried out pioneering studies in the feedbacks between soil moisture, vegetation pattern, and community dynamics of savanna ecosystems. This research has demonstrated the decisive role that trees play in determining soil moisture dynamics and subsequent community composition across a regional climate gradient.
Refined theories and innovative modeling approaches are necessarily dependent on improved observations. Kelly has developed methods to estimate transpiration of trees using sap flux techniques, as well as characterizing the impact of land management and disturbance regimes on vegetation rooting patterns.
Kelly's research focuses on developing a broad understanding of the coupling between hydrologic, ecological, geophysical, and biogeochemical processes in dryland ecosystems, and he has made a phenomenal start toward that goal. As one supporting letter stated, "Kelly is an extraordinary young scientist and I am sure there is no other eligible candidate more deserving of this award." Another senior researcher wrote, "Kelly is a scientist in the classical sense, and not someone who is pigeon-holed as either a modeler or experimentalist. Based on this fundamental approach, I find his research to be very original, significant, and cutting-edge."
I could not agree more. For his outstanding creativity and superb combination of theoretical, laboratory, and field experiments, and his outstanding original contributions to hydrology in the early stages of his career, it is a privilege to introduce Kelly K. Caylor, the winner of the first Early Career Hydrologic Sciences Award.
—Ignacio Rodríguez-Iturbe, Princeton University, Princeton, N. J.
Thank you, Ignacio, for your kind remarks. I am honored to receive this award.
As with all early career awardees, I have been training to be an academic for longer than I have been one. So while Ignacio has spoken so generously about me, I would like to speak about some of the colleagues critical to my development as a young researcher.
The person who first encouraged me into a life in pursuit of knowledge was Hank Shugart, my undergraduate thesis advisor at University of Virginia and eventually my Ph.D. advisor as well. I thank Hank for everything he has done for me, especially his patience and encouragement during the many years we have worked together.
At Virginia, I learned from and worked with many other graduate students and faculty whom I greatly respect and admire. I especially thank fellow students Todd Scanlon, Vaughan Turekian, and Dan Druckenbrod, as well as faculty including John Albertson, Jose Fuentes, and Paolo D'Odorico. They all provided me with advice and support as well as inspiration through their examples.
My time at Princeton as a postdoc working with Ignacio was transformative, and the debt I owe him continually increases. Our offices at Princeton are adjacent, and so it is appropriate that this award will hang not only on my wall but also on his.
I have lately had the opportunity to move into new areas of research that are exciting but also critically important. Hydrology will play a considerable role in shaping the future of ecosystems under increasing pressure from climate change and land use intensification. I am excited to be part of this research and humbled by all that remains to be done. I am thankful to be joined by graduate students and postdocs who motivate me daily through their excellence and creativity.
I am deeply honored to be the inaugural recipient of the Early Career Hydrologic Sciences Award, and I thank AGU for its commitment to fostering a vibrant and collaborative environment in which young scientists may thrive.
—Kelly K. Caylor, Princeton University, Princeton, N. J.
Submit Nomination for 2019 AGU Section Awards


The ornate MMORPG is is currently available on Xbox One, PS4, and PC.
Black Desert Online packages also receive a 50% discount.
The Mediah expansion adds over 1,000 more quests to complete and expands the world by 30%, all for free!
Upgrade your weapons and armor with Black Stones.
Learn how to amass your league of laborers so you don't have to expend your own energy doing so.
You'll be able to win various real-world and in-game items.


This Agreement is made by and among the Client and Royal Media Group ("Royal Media") of 8 W 38th St., Suite 901, New York, NY 10018.
Delivery of All Components. Royal Media shall deliver the components of AFN: Enterprise via U.S. email and internet access on AutoFinanceNews.net promptly upon each project's completion date.
Access to Reps Performance Index, an interactive tool that provides quantitative data on dealer perceptions of lender performance related to credit underwriters and field reps. The database enables users to analyze and benchmark their companies' – and their competitors' – rep performance.
Event benefits include: standing 15% discount on event registrations, exclusive fast-track reservations line on-site at all Auto Finance News events, on-site recognition as a supporter of Auto Finance News, and ability to nominate speakers for events.
Scope of License. Pursuant to the terms of this Agreement, the Client shall have the right to provide access to AFN: Enterprise only to employees within the organization and only to those registered with Royal Media Group as part of the Enterprise Subscription.
Electronic Restrictions. The Client agrees to restrict electronic access to AFN: Enterprise to the employees within the organization who are listed on the Official Auto Finance News: Enterprise Edition Subscription Spreadsheet, and under no circumstances shall access to AFN: Enterprise be provided to nonemployees of the Client.
Subscribers' Restrictions. Client Employees may not print or otherwise reproduce or retransmit any materials contained in AFN: Enterprise except as expressly authorized by this Agreement. The Client's employees may use and share the information freely among other Enterprise Users at the Client, but may share the information only for specific purposes and in a limited manner with non-employees of the Client. The intent of this restriction is to preclude mass external distribution of AFN: Enterprise beyond the Client's employee base. If an employee of the Client wants to republish or disseminate this content outside of the Client, such as in a presentation, he/she must first receive written permission from Royal Media. Royal Media agrees to use its reasonable discretion in deciding whether to grant such permission.
License Fees. The Client shall pay Royal Media an annual license fee for the rights granted in the amount of $3,500.
Term. The initial term of this Agreement shall be 1-Year from the date payment is received and shall be renewed automatically at the same price on an annual basis for a period of 3 years. Unless Client provides written notice of cancellation to Royal Media Group 60 days prior to the renewal date. Payments to Royal Media shall be made annually upon receipt of an invoice from Royal Media.


text:
Q: Importing ping module in RestrictedPython script in Plone I would like to check internet connexion from my plone site. I tried a ping in a python script
## Script (Python) "pwreset_action.cpy"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##title=Reset a user's password
##parameters=randomstring, userid=None, password=None, password2=None
from Products.CMFCore.utils import getToolByName
from Products.PasswordResetTool.PasswordResetTool import InvalidRequestError, ExpiredRequestError
import ping, socket

status = "success"
pw_tool = getToolByName(context, 'portal_password_reset')
try:
    pw_tool.resetPassword(userid, randomstring, password)

except ExpiredRequestError:
    status = "expired"
except InvalidRequestError:
    status = "invalid"
except RuntimeError:
    status = "invalid"

context.plone_log("TRYING TO PING")
try :

 ping.verbose_ping('www.google.com' , run=3)
   context.plone_log("PING DONE")
except socket.error, e:
    context.plone_log("PING FAILED")

return state.set(status=status)

I got these errors :
2012-07-20T11:37:08 INFO SignalHandler Caught signal SIGTERM
------
2012-07-20T11:37:08 INFO Z2 Shutting down fast
------
2012-07-20T11:37:08 INFO ZServer closing HTTP to new connections
------
2012-07-20T11:37:42 INFO ZServer HTTP server started at Fri Jul 20 11:37:42 2012
    Hostname: 0.0.0.0
    Port: 8080
------
2012-07-20T11:37:42 WARNING SecurityInfo Conflicting security declarations for "setText"
------
2012-07-20T11:37:42 WARNING SecurityInfo Class "ATTopic" had conflicting security declarations
------
2012-07-20T11:37:46 INFO plone.app.theming Patched Zope Management Interface to disable theming.
------
2012-07-20T11:37:48 INFO PloneFormGen Patching plone.app.portlets ColumnPortletManagerRenderer to not catch Retry exceptions
------
2012-07-20T11:37:48 INFO Zope Ready to handle requests
------

A: Python Scripts in Zope are sandboxed (via RestrictedPython, which means that any module imports have to be declared safe first. Adding modules to the declared-safe list is generally a Bad Idea unless you know what you are doing.
To declare a module as importable into Python Scripts, you'll need to create a python package, then add the following code to it so it is executed when Zope starts:
from Products.PythonScripts.Utility import allow_module

allow_module('ping')

This'll allow any import from that module (use with caution)!
It's better to allow only specific methods and classes from a module; use a ModuleSecurity declaration for that:
from AccessControl import ModuleSecurityInfo

ModuleSecurityInfo('ping').declarePublic('verbose_ping')
ModuleSecurityInfo('socket').declarePublic('error')

This is documented in the Security chapter of the Zope Developers Guide, specifically the section on module security assertions.
Note that it nearly always is a better idea to do all this work in a tightly constrained method in unrestricted code (e.g. a regular python package), then allow that method to be used from a python script instead.

A: It won't work.
You CANNOT import arbitrary Python modules in RestrictedPython scripts, as in the answer you were told yesterday:
https://stackoverflow.com/a/11568316/315168
If you need to use arbitraty Python modules you need to write your own Plone add-on for that and use a BrowserView for the purpose. RestrictedPython through-the-web-browser development is not enough:
http://collective-docs.readthedocs.org/en/latest/getstarted/index.html


Happy Write About It Wednesday, Writers! I hope you have had a good week so far. Monday was April Fools' Day. Did you pull any pranks or get pranked? Maisie Williams from Game of Thrones and Jimmy Fallon pulled a pretty epic prank on The Tonight Show. Did you see it?
April Fools is our Write About it Wednesday Topic this week!
Write about a fantasy April Fools type celebration or a fantastical April Fools Origin Story.
Write about a time that you were pranked or you pranked someone else.
Write about an April Fools Serial Killer.
Write about a teenager who asks someone out as a prank on April Fools.
Learn about the origin of April Fools' Day here.


text:
Wisconsin Woman Steals Jesus Figurine From Park Nativity
By Zola Ray On 12/26/17 at 6:47 PM EST
The famous Christ the Redeemer Statue is pictured in Rio de Janeiro, Brazil. Tom Shaw /Allsport / Getty Images
U.S. Nativity Christmas Jesus Wisconsin
A woman was arrested in Wisconsin on Sunday on a charge of stealing a baby Jesus figurine from a park's nativity scene, the West Bend police said in a Facebook post.
Related: British Snack, Not Jesus, Featured in Christmas Nativity Scene, Angering Christians
A police officer observed the woman holding the figurine early Sunday morning around 2:10 a.m., police said. When the officer tried to speak to the woman, she "dropped the figurine and ran," according to the Facebook post, which is signed by Sgt. Brian Scharinger.
West Bend Police Department / Facebook
The nativity scene from which the figurine was removed was in Old Settlers Park, located in West Bend's downtown. A previous baby Jesus figurine from that same nativity scene had been damaged on December 17, and the statue that police said the woman attempted to steal was a new replacement.
The police have not released the identity of the woman, CBS News reported Sunday. However, she's a West Bend resident who is 21 years of age. She was charged with theft as well as obstructing an officer, putting her in the Washington County jail, the Facebook post stated. Police did not find evidence to suggest the woman was responsible for the damage that occurred to the previous baby Jesus figurine a week prior.
Children in Lviv, Ukraine act in a Nativity scene in 2012. YURIY DYACHYSHYN/AFP/Getty Images
West Bend is a town 40 miles outside of Milwaukee that has a population of about 30,000 people, Associated Press reported Sunday. West Bend has 40 parks, according to the City of West Bend website.
The Wisconsin theft may not have been as high-profile as an attempt at the Vatican on Monday, when a baby Jesus statue was almost removed. The culprit was a topless woman identified by Femen, a Ukrainian-French group of radical feminists, as Alisa Vinogradova.
As Vinogradova grabbed the statue, she shouted "God is a woman," a phrase which also was painted on her back. Femen often engages in topless protests, including many demonstrations at Pope Francis's Sunday sermons at the Vatican.
Topless Femen activist tries to steal baby Jesus from Vatican nativity scene https://t.co/WP6DuYn9V7 pic.twitter.com/YJsM8eh3cS
— Newsweek (@Newsweek) December 25, 2017
Replacing a baby figurine was likely an expense that the small town didn't want to have to pay again. But in Vermont, one woman has miniature nativity scenes on every surface in her home, adding up to more than 1,400 nativity scenes, Associated Press reported Thursday.
Shirley Squires, who is 87 years old, says this was her 20th year decorating her house in that fashion. She allows visitors to make appointments to visit her home. These visitors include groups from churches and schools. Let's hope the Jesus figurine thieves stay away from Squires's impeccably decorated home.
Sausage Roll Instead of Jesus Causes a Stir
Topless FEMEN Activist Tries to Steal Baby Jesus
Jesus Birth Story Revised by Activist Nativity Scenes


text:
Cristan Williams
Group Op-Eds
Sex Essentialist Violence And Radical Inclusion: An Interview With Sandy Stone
TCP Blog
Cristan
Pt. 5, Radical Epistemology: Applications of Sex Class and Sex Caste Consciousness
Pt. 6, The Fork in the Road: Sex Class Consciousness vs Biologism, Essentialism, and Identity
Published by TCP at February 15, 2016
LESBIAN FEMINISM
RADICAL FEMINISM
SECOND-WAVE FEMINISM
Sandy Stone, author of the queer-studies classic, The Empire Strikes Back: A Posttranssexual Manifesto, recounts her experiace with a trans-inclusive radical feminist Lesbian separatist tradition, as well as her experience with militant activists who promoted sex essentialism as a brand of feminism. Included is commentary about sex essentialist animus by the co-founder of The Furies and Olivia Records Collectives, Ginny Berson.
Keywords: Second-wave feminism Radical Feminism Lesbian Feminism
BY Cristan Williams
@cristanwilliams
Hirstory
Born out of the radical feminism of the Radicalesbians and The Furies, the Olivia Records Collective was a successful radical feminist lesbian separatist music collective located in California. Olivia was a "hugely successful recording company, marketing radical lesbian recordings and performances that soon defined the 'women's music' movement."1 Moreover, Olivia was a trans-inclusive space. Not only did this radical feminist lesbian separatist space welcome out trans woman Sandy Stone as the woman she was, the Collective helped Stone access the trans medical care she needed. Olivia's commitment to a trans-inclusive radical feminist tradition stands in stark contrast to the popular media narrative that, "radical feminists insist on regarding transgender women as men, who should not be allowed to use women's facilities, such as public rest rooms, or to participate in events organized exclusively for women."
However, Sandy Stone was a problem that the sex essentialist activist, Janice Raymond, author of The Transsexual Empire: The Making of the She-Male, worked to problematize within the feminist community. Raymond promoted an anti-trans campaign that nearly destroyed Olivia and put Stone's life in jeopardy, culminating in armed sex essentialist activists asserting their intention to murder Stone. Ginny Berson, co-founder of both The Furies and Olivia Collectives, said the following about the campaign against Stone and Olivia:
It was horrible. It was ugly and destructive and mean-spirited and just stupid. How much easier it is to attack people close to you than to focus on the patriarchy! It was painful. It felt like everything we had done was invisible and irrelevant to those people.2
What follows is a detailed account of what Stone – and this radical feminist women's community – endured at the hands of a sex essentialist movement.
Cristan Williams: Can you tell me how you first became aware of the [sex essentialist activist] movement?
Sandy Stone: That would have been the Janice Raymond incident. That came in the context of my work with Olivia Records. When I was first approached by representatives of Olivia Records, which I think was in 1974, I immediately told them that I was trans and in fact, they had already heard that I was trans from Leslie Ann Jones, who was an assistant recording engineer in San Francisco. So, we were already in clear communication about the fact that I was trans and they were very open to working with me. They mostly wanted to know if our politics agreed and whether or not I could work with a lesbian separatist collective. They badly needed engineering skills.
The Collective was very clear that they considered me to be a woman. We spent a long time – about a year, maybe more – in which we got to know each other and by the time that I actually joined the Collective, we felt that we knew all that we needed to know about how we were going to get along together. And so, I joined the Collective and went to live with them in Wilshire District of LA, where we had three houses: two next to each other and one across the street. There were 13 members of the Collective after a while. I think that when I joined there were 11.
That's the background. I wanted to give you that background because what happened with Raymond was so betraying, so bizarre, and so completely unexpected.
We received an 11 x 14 envelope containing parts of the chapter of her book that she would later title Sappho by Surgery. The copy we received to review didn't name me personally, but it was clearly pitched to out me. The Collective passed the piece around, with our usual comment sheet attached, and by the time it got to me there were maybe eight or nine comments on it already. The comments were, "This is garbage!" and "Holy cow, what's wrong with this person!" and "This bears no relation to reality." and "Where does she get this stuff?" As the only trans woman in the Collective that I knew of, I felt it my obligation to take a moderate position on it and although I thought that it was disgusting and completely out of left field – I mean, none of us recognized that what we were dealing with was hate, it just looked like another weirdo writing a pseudoscientific paper — so, my comment was, "The world really needs a book on this topic, but this is not that book." That was all I said and I passed it on to Judy and we sent it back to Raymond with the comment sheet attached and we thought that that was the end of it. We just didn't understand the depth of hate.
Then, we began to get hate mail. Before all of that, we'd been just working along – we had a lot of stuff on our plates – we had a distribution network, we were making albums, we were doing PR, but mainly, we were all concentrated on making women's music for women as a political act of love and hopefully, make enough money to keep the Collective going.
All of a sudden came this thing from left field. We were being broadsided by hate mail. The hate mail initially took a form that was so recognizable that Ginny Berson diagrammed it out. We'd get a letter and the letter would attack one of our albums because of the way that it was engineered and mixed. There were very clear ideas of what constituted a "male" mix and a "female" mix, which nobody had ever heard of before. What it came down to was that "male" mixes had drums, which was linked back to "throbbing male energy."
Williams: [Laughs] I'm sorry. That's just ridiculous!
Fig 1: Sandy Stone at Olivia Records
Stone: Believe me, I'm glad to have someone laugh along because it was funny to me at the time, but it was deadly serious to the people who were writing and it turned out to be catastrophic for us as a Collective, although we didn't realize it at the time. It was a process of being educated to the level of [anti-trans] hatred. At this time, within the Collective, I was planning on converting the living room of the house next door to be a school so that we could teach women to record, so that there would be a lot of women with engineering skills. In the meantime, we're getting hate mail about me. After a while the hate mail got so vicious that Sandy, who worked in the mail room, made a decision to not pass that mail along to me. This was vile stuff. A lot of it included death threats. They would let me know about the death threats after a while. The death threats were directed at me, but there were violent consequences proposed for the Collective if they didn't get rid of me.
The more hate mail that arrived, the more we could perceive that there was organizing going on, outside of the Collective, that had to do with transphobia and with isolating trans people wherever they popped up. I was not alone.
This pattern escalated. We were organizing what was for us, a major tour. We wanted to tour the country and provide women's music for women in major cities along our route. It was the first time anything like that had been attempted. We were very intent on it and it was extremely energy-absorbing. It took all our energy to get it going. We had an entire network of lesbian separatist producers, people who could organize local logistical support, people who could advertise tickets and handle the selling and we wanted it to be completely done by women.
Anyway, we had organized this tour and we had gotten a letter telling us that when we got to Seattle that there was a separatist paramilitary group called the Gorgons. The Gorgons was a group of women who wore camo gear, shaved their heads and carried live weapons. We were told that when we got to town, they were going to kill me.
Williams: Wait, they said that they were going to KILL you if you came to Seattle?
Stone: Yes, but we kind of laughed about it. We thought that was just talk, but then we heard it was actually true. So, we began checking this out and the women who had booked the hall for us said, "Yes! These people are real and you guys had better do something about this because they're serious!"
We did, in fact, go to Seattle, but we went as probably the only women's music tour that was ever done with serious muscle security. They were very alert for weapons and, in fact, Gorgons did come and they did have guns taken away from them.
I was pants-wetting scared at that event. I was terrified. During a break between a musical number someone shouted out "GORGONS!" and I made it from my seat at the console to under the table the console was on at something like superluminal speed. I stayed under there until it was clear that I wasn't about to be shot… Not that it would have done me any good to be under there.
Williams: The sheer oppressive weight of this impending violence that was hanging over your head, that's ready to drop upon you and the people you work with and care about at any moment… That had to feel like terrorism; it's terror inducing. How did you deal with that kind of pressure, day in, day out, when it became clear that there were [sex essentialist activists] who were prepared to kill you for being trans?
Fig 2: Sex essentialist letter, publicly repudiating Olivia for being trans-inclusive, published in Sister, 1977
Stone: [Long pause] I dealt with it in stages. In the beginning, I felt really protected by the women of the Collective. I felt that we, as a collective unit, would stand in solidarity. In fact, the Collective sent a letter to… I'd have to go look for the name of the publication. I can't remember.
Williams: Was it Sister?
Stone: Yes!
Published in the June, 1977 issue of Sister, what follows are excerpts from the Collective's response to sex essentialist hate:
Because Sandy decided to give up completely and permanently her male identity and live as a woman and a lesbian, she is now faced with the same kinds of oppression that other women and lesbians face. She must also cope with the ostracism that all of society imposes on a transsexual. In evaluating whom we trust as a close ally, we take a person's history into consideration, but our focus as political lesbians is on what her actions are now. If she is a person who comes from privilege, has she renounced that which is oppressive in her privilege, and is she sharing with other women that which is useful? Is she aware of her own oppression? Is she open to struggle around class, race, and other aspects of lesbian feminist politics? These were our yardsticks in deciding whether to work with a woman who grew up with male privilege. We felt that Sandy met those same criteria that we apply to any woman with whom we plan to work closely.
As to why we did not immediately bring this issue to the attention of the national women's community, we have to say that to us, Sandy Stone is a person, not an issue.
All of us are looking forward to the day when work can begin on our studio and Sandy can start training other women. As we do of each other, we ask everything of Sandy, and she gives it. She has chosen to make her life with us and we expect to grow old together working and sharing.
Stone: That was the way the Collective was responding to the public debate. Then we had a very foul debate in which, when we looked around, the people affiliated with the Collective, who lived in Oakland, immediately said that, "Wait, these women are not from here. There's a group here from Chicago that are known to be head breakers!" I think she meant that they were there to stir up trouble.
We brought four or five women from the Collective, and me, and our idea was –very naively – that we would have a rational discussion about trans people and the women's community. It started off with a woman, I'd never met her and I have no idea who she was, standing up and delivering a long statement which consisted of bizarre misinformation about the psychological origin of being trans, that is was a twisted pathological state and that trans people posed a danger, because of our pathology, and how we were perverting the women's community and bringing pathological energy into it. While she was saying all of this, several women from the Collective were looking at me with their eyebrows up in shock and I was sitting there with my jaw dropping, and when she finished, the Collective women on either side of me said that I should respond to it. I was, just without words. I said the totally wrong thing. I think anything that I said would probably have been seen as being wrong, but I think I picked the most wrong thing to say. All I could think of to say was – in a normal speaking tone – "But… But, this is bullshit."
The meeting immediately erupted in screaming. People were standing on tables, screaming about me and about the evils of me, and about how it was all true because here was the proof because I had not engaged in a "womanly" way. Nobody could stop it. Nobody could calm it down. The Trans Exclusionary Radical Feminists (TERFs) refused to stop disrupting the meeting unless I left the room. After a while, we did a little huddle and some of the Collective women said, "We can't have Sandy leave. That's just not acceptable." I said, "Look, I think I'd better leave because this is not going to go anywhere with me here." Eventually we agreed on that and I left.
I went back to the Wilshire District in LA because all I wanted to do was to crawl into a hole, in a fetal position and try to shake it off. The rest of the group came back traumatized. They said that after I had left, that there was no rational discussion, that there was a lot of hate about me, and a lot of anger with the Collective for employing me –which I wasn't; I was a member, not an employee– and they began to realize for the first time that there wasn't going to be a rational debate. They really began to understand that something was going on that was quite loathsome and that we couldn't respond to in any reasonable way.
Williams: So, coming to recognize that you and the Collective were facing real hate, how were you able to deal with such animosity?
Stone: We realized that we just couldn't respond to that level of hate. We stopped responding to the hate mail. We used to respond to the hate mail even if it was to say, "Thank you, we appreciate your opinion." But even that just became impossible. Dealing with the hate was taking up too much time. We all dealt with it by focusing more on our work. However, that didn't mean that that much hate didn't affect me.
Williams: It's not uncommon to hear from victims of [sex essentialist] abuse talk about experiencing something akin to PTSD, after trying unsuccessfully to stop months of harassment. I mean, it's hard enough being trans, but add onto that the experience of having some extreme hate directed at you personally, it's not a benign thing. It really does affect the lives of their victims.
Stone: I had begun to think that we potentially had a worse situation than I thought we'd had. The consequence for me was that it was an emotional roller coaster. As I had mentioned, there was the tour that we were trying to do. I was putting up a front of being okay and the consequence was that after the Seattle gig, I passed out while trying to work.
Williams: So, wait… You had gone from really coming to understand the visceral hate you were facing from that meeting, to having so much hate mail that the Collective just stopped dealing with it, to having this [sex essentialist] group announce its intention to murder you…
Stone: Well, there was more. We couldn't afford to buy touring equipment, like mic stands, the mixer board; I built all that stuff from scratch out of whatever parts I could find to support the tour. That was a hell of a lot there, adding to the strain too because it all had to be built well and work right because we couldn't stop to repair anything en route, and, fortunately, it actually all worked as it was supposed to. But all of that was going on too.
It would be reasonable to say that I was under a bit of pressure and that it wasn't easy and that it really affected me.
When we had the boycott threat, that was when I decided to leave the Collective.
Williams: I've done several interviews around the trans caricatures Janice Raymond created for the [sex essentialist activist] community to go after. I talked to Robin Tyler and she told me about how [sex essentialist activists] physically attacked her for standing between them and a trans woman they wanted to beat at the 1973 Lesbian Conference. These radical feminist institutions – the '73 Conference, Olivia Records – they were trans-inclusive. Each time [sex essentialists] turned to harassment and violence to insert themselves into feminist spaces. Thus far, [sex essentialists] like Raymond have gotten away with creating this false narrative about how their radical feminist spaces were being invaded by violent trans women and it's just not the case.
So, what happened after all of this? For years you had been living in this very public pressure cooker with visceral and tangible hate directed at you –being vulnerable in that way– in the context of trying to cope with it all, and then it comes to an end, what happened then?
Stone: I left still loving the Collective and the individual women in it. Every one of them. And I still do. Every single one of them. They have a very special place in my heart.
I went back to Santa Cruz, and I took up my life, and the Santa Cruz community was extremely supportive. Shortly after I returned, a TERF called a community meeting in which the question was raised, whether I was a woman and whether I would be allowed into "women's spaces."
Williams: Wait. So this is AFTER you left Olivia? This was after you went home and even then, they wouldn't stop?
Stone: After Olivia, I couldn't go anywhere without being a lightning rod. Now, at this point, the question was, "Are we going to let trans women –who are men– into our community?" Well, Janice Raymond said something like "trans people divide women." So, I "divided" my local women's community.
The community voted on whether I would be "allowed into women's spaces" and at that time at least 50 women came to the meeting. The vote was 49 to 1. There was one TERF at the meeting that refused to accept me. So, in fact I did divide the community. The TERF went off in a huff and I never heard from her again and that was the end of that. Since then, I've just been another member of the GLBT community in Santa Cruz, California. I consider this to be my heart's home.
What follows is the published fact assertion Raymond made about Stone, along with Ginny Berson's response:
Raymond: This only serves to enhance his previously dominant role and to divide women, as men frequently do, when they make their presence necessary and vital to women. Having produced such divisiveness, one would think that if Stone's commitment to and identification with women were genuinely woman-centered, he would have removed himself from Olivia and assumed some responsibility for the divisiveness.3
Berson: [That's] very inaccurate… The anti-trans activists created some problems for us, and we went through some ugly and hard times because of them. Not because of Sandy. 4
Stone: Life went on except for the fact that I have this kind of parallel identity, this kind of Gollum named "Sandy Stone" that walks around and does things that I don't know anything about and shows up at places that I've never been.
Williams: [Laughs]
Stone: It's been more or less like that, to a diminishing extent, ever since. Occasionally, nice things will happen but then I'll get broadsided by stuff. But then I met Donna Haraway, who was doing research for her paper on cyborgs, and I became involved with a university through a completely random chance event and I found my home in academic life. As soon as I said that "the university felt like home," the whole universe –the Goddess– really pushed me into academia and essentially, I've been in academia ever since.
I don't know if that answers your question of what happened afterwards, but what happened was that I fell into history in the sense that time began to pass in a way that it didn't when I was with the Collective and in the years immediately after. I got an academic career, I felt more grounded, I got married, I have a kid and a grandkid and a family of 15 people here in town; time began to pass. That's what I mean by, "I fell into history." Life began to go on. I got happy. I guess that's the best possible way to put that. I got happy and I'm still happy. I walk every day by the ocean, Cynbe comes home and we talk about geek stuff, I'll work on some project, my kid will come around with a grandkid, I'll have dinner for the rest of the family, they'll all come over… I'm living life. If there was anything that I never expected to have in my life, it was contentment.
And I'm as astonished by that as I can possibly be.
About Sandy Stone
Sandy Stone is the Founding Director of the Advanced Communication Technologies Laboratory (ACTLab) and the Convergent Media program of the University of Texas at Austin; Senior Artist at the Banff Centre for the Arts; and Fellow of the Humanities Research Institute, University of California, Irvine. In various incarnations she has been a filmmaker, rock 'n roll music engineer, neurologist, social scientist, cultural theorist, and performer. She is the author of numerous publications including "The Empire Strikes Back: A Posttranssexual Manifesto" and "The War of Desire and Technology at the Close of the Mechanical Age", both of which are available in a wide selection of translated editions. She lives in Austin, Texas and Santa Cruz, California with her husband Cynbe ru Taren (aka Jeffrey Prothero) and their cat, /dev/cat.
A version of this interview was first published on the TransAdvocate.
Morris, Bonnie. "Olivia Records: The Production of a Movement." Journal of Lesbian Studies 19, no. 3 (2015): 290-304.
Cristan Williams, personal communication with Ginny Berson, September 12, 2015.
Raymond, Janice G. The Transsexual Empire: The Making of the She-Male. Boston: Beacon Press, 1979. 102.
TransAdvocate.com | Brazil.TransAdvocate.com | RadFem.TransAdvocate.com