Dell has promised that Windows 8 fans will have plenty of Dell products to choose between by this time next year.
Speaking on Dell's Q2 earnings call during which it revealed a 22 per cent fall in consumer sales, CFO and senior VP Brian Gladden tried to allay investors' concerns with the promise of new hardware.
"You'll see new Windows 8 ultrabooks, all-in-one tablets and converged devices in the fourth quarter and headed into next year," he told them.
By all-in-one tablets, we're assuming he means tablets with keyboard docks – but who knows.
He went on to talk at length about the company's feelings on Microsoft's decision to launch its own Windows 8 hardware, namely the Microsoft Surface.
Acer has already gone on record with its opinion that Microsoft making a Windows 8 tablet is a bad idea, but Dell is a little more diplomatic.
"As you think about Microsoft entering the space, clearly, as we think about it, we've spent time talking to Microsoft and understanding sort of how they're thinking about it," said Gladden, confusingly.
"There clearly are opportunities for us, as Windows 8 comes through, in having differentiated products.
"And I think at the same time they have announced the Surface product that would be in the space, we will have products in there, and I think you'll see a diverse set of offerings that take advantage of what Windows 8 brings to market."
That's using a lot of words to basically say that Dell's products will be different from Microsoft's: glad we cleared that up.


text:
package com.component.socket.processing;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;

import com.algorithm.authorization.UserAuthorizer;
import com.component.socket.gson.ClientData;
import com.component.socket.gson.TaxiMapData;
import com.component.socket.threading.CentralProcessingThread;
import com.component.socket.threading.ServerListenerThread;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;

/**
 * Processing protocol for serverListener threads.
 *
 * Data is passed into this class' only method, "processInput()", in the form of a deserialized
 * JSON object. The method then processes the object, which may involve calculations, execution of
 * algorithms, and the like. The process will usually be terminated by sending data out on the
 * thread's socket, but not always.
 *
 * @author Colin Lam
 */
public class ServerListenerProtocol {

    private CentralProcessingThread centralProcessor;
    private ConcurrentHashMap<String,ConnectedClient> sessionIds;
    private ConcurrentHashMap<ServerListenerThread,ConnectedClient> connectedClients;
    private ServerListenerThread serverListener;

    private ServerListenerProtocolServer serverListenerProtocolServer;
    private ServerListenerProtocolPassenger serverListenerProtocolPassenger;
    private ServerListenerProtocolDriver serverListenerProtocolDriver;

    public ServerListenerProtocol(CentralProcessingThread centralProcessor,
            ServerListenerThread serverListener) {

        this.centralProcessor = centralProcessor;
        sessionIds = centralProcessor.getSessionIds();
        connectedClients = centralProcessor.getConnectedClients();
        this.serverListener = serverListener;

        // Initiate ServerListenerProtocolServer, ServerListenerProtocolPassenger, and
        // ServerListenerProtocolDriver.

        serverListenerProtocolServer = new ServerListenerProtocolServer(connectedClients,
                serverListener);
        serverListenerProtocolPassenger = new ServerListenerProtocolPassenger(centralProcessor,
                connectedClients, serverListener);
        serverListenerProtocolDriver = new ServerListenerProtocolDriver(centralProcessor,
                sessionIds, connectedClients, serverListener);
    }

    /**
     * Craft a message containing an error code, and write a meaningful statement to the log.
     *
     * This helper function gets used a lot in the process of interpreting the data entered by the
     * user.
     *
     * @param code
     *   The integer error code representing what went wrong.
     * @param message
     *   The message to write to the log.
     * @return
     *   A ClientData object representing a message containing an error code.
     */
    public static ClientData generateErrorResponse(ServerListenerThread serverListener, int code,
            String message) {

        ClientData response = new ClientData();
        response.setStatus(code);

        Logger logger = Logger.getLogger("global");
        logger.info(serverListener.getSocket().getInetAddress() + ": " + message);

        return response;
    }

    /**
     * Helper function to dump something into the global log.
     *
     * @param serverListener
     *   The serverListener to which the message pertains.
     * @param message
     *   The message to write to the log.
     */
    public static void generateLogEntry(ServerListenerThread serverListener, String message) {

        Logger logger = Logger.getLogger("global");
        logger.info(serverListener.getSocket().getInetAddress() + ": " + message);
    }

    /**
     * Process the input passed to the serverListener.
     *
     * This method must service two kinds of messages: requests coming in from clients, and
     * responses that have been generated by the centralProcessor. It must distinguish between
     * these kinds of responses.
     *
     * Based on the form that the input will take, the process will do one of things. In cases
     * involving clients, a response will be sent to the client. Possible status codes are
     * elaborated on in the team's documents.
     *
     * The input may also warrant a communication with the centralProcessor. It will queue up
     * requests on the centralProcessor queue. No data should be passed between this thread and
     * the centralProcessor; the centralProcessor should take care of everything. The names of
     * specific requests can also be found in the team's documents.
     *
     * This section will very likely morph and evolve as further functionality is added.
     *
     * @param dataToProcess
     *   Request to process.
     */
    public void processInput(ServerRequest dataToProcess) {

        ClientData processedData = null;

        if (dataToProcess.isCentralProcessorResponse()) {
            // This is a response from the centralProcessor.
            processedData = processServerData(dataToProcess);
        }
        else {
            // If the string data in the dataToProcess request starts with a "#", then this is a
            // request for a TaxiMapData object. We should check for that.

            if (dataToProcess.getStringData().startsWith("#")) {
                try {

                    TaxiMapData taxiMapData = ServerListenerProtocolTaxiMap.processMapData(connectedClients);

                    PrintWriter out = null;

                    out = new PrintWriter(serverListener.getSocket().getOutputStream(), true);

                    String serializedDataToProcess = new Gson().toJson(taxiMapData);
                    out.println(serializedDataToProcess);
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (JsonSyntaxException e) {
                    processedData = generateErrorResponse(serverListener, JSONErrorCodes.BAD_REQUEST,
                            "BAD_REQUEST error generated due to non-JSON entered in a TaxiMapData request");
                } catch (NullPointerException e) {
                    processedData = generateErrorResponse(serverListener, JSONErrorCodes.BAD_REQUEST,
                            "BAD_REQUEST error generated due to a NullPointerException in a TaxiMapData request");
                }

                return;
            }

            // This is a request from the client.

            // Whenever non-JSON is entered here, two exceptions get thrown:
            // JsonSyntaxException and IllegalStateException. Either one can be handled in
            // order to take care of this problem.
            try {
                ClientData deserializedData = new Gson().fromJson(
                        dataToProcess.getStringData(), ClientData.class);

                processedData = processClientData(deserializedData);

            } catch (JsonSyntaxException e) {
                processedData = generateErrorResponse(serverListener, JSONErrorCodes.BAD_REQUEST,
                        "BAD_REQUEST error generated due to non-JSON entered");
            } catch (NullPointerException e) {
                // Somewhere along the way, something was accessed - probably from within the GSON
                // object - and caused a NullPointerException. This is likely indicative of a
                // missing field within the JSON string received. In any case, send a
                // BAD_REQUEST error.

                processedData = generateErrorResponse(serverListener, JSONErrorCodes.BAD_REQUEST,
                        "BAD_REQUEST error generated due to a NullPointerException");
            }
        }

        if (processedData != null) {
            PrintWriter out = null;

            try {
                out = new PrintWriter(serverListener.getSocket().getOutputStream(), true);

                String serializedDataToProcess = new Gson().toJson(processedData);
                out.println(serializedDataToProcess);

                // Log what got sent out.
                Logger logger = Logger.getLogger("global");
                logger.info("OUTGOING DATA: " + serializedDataToProcess);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * Process a ClientData object by its type code. Data processed by this method is exclusively
     * produced by clients.
     *
     * @param dataToProcess
     *   Incoming ClientData object to process.
     * @return response
     *   If a response is warranted, it is returned to be sent back to the client.
     */
    private ClientData processClientData(ClientData dataToProcess) {

        ClientData response = null;

        // Check if there's anything inside the payload first.

        if (dataToProcess.getPayload() == null) {
            response = generateErrorResponse(serverListener, JSONErrorCodes.PAYLOAD_INVALID,
                    "PAYLOAD_INVALID error generated");
        }
        else {
            // Process the payload.

            String typeCode = dataToProcess.getPayload().getType();

            if (dataToProcess.getSessionId() != null) {

                // Verify that the sessionId is valid.
                ClientData verifier = verifySessionId(dataToProcess);
                if (verifier != null)
                    // An error occurred. Return the error to the client.
                    return verifier;

                // No errors. Continue as normal.

                if (typeCode.equals("TAXI_LOC_UPDATE") ||
                        typeCode.equals("MANUAL_PICKUP") ||
                        typeCode.equals("EMERGENCY") ||
                        typeCode.equals("TAXI_ARRIVED") ||
                        typeCode.equals("BOARDED_TAXI") ||
                        typeCode.equals("WAIT_TIMEOUT") ||
                        typeCode.equals("ARRIVED_AT_DEST") ||
                        typeCode.equals("CASH_ACCEPTED"))
                    // This is a driver request.
                    response = processDriverRequest(dataToProcess);

                else if (typeCode.equals("GET_TAXI") ||
                        typeCode.equals("CANCEL_TAXI") ||
                        typeCode.equals("GET_LOC_UPDATE") ||
                        typeCode.equals("SET_DESTINATION") ||
                        typeCode.equals("CURRENT_STATUS") ||
                        typeCode.equals("PAYPAL_ACCEPTED"))
                    // This is a passenger request.
                    response = processPassengerRequest(dataToProcess);

                else
                    // Any other token generates a TYPE_INVALID error.
                    response = generateErrorResponse(serverListener, JSONErrorCodes.TYPE_INVALID,
                            "TYPE_INVALID error generated: no such type as " +
                            dataToProcess.getPayload().getType());

                // Update the TTL field of this thread's associated ConnectedClient.
                connectedClients.get(serverListener).setTimeToLive(System.currentTimeMillis());

                return response;
            }

            else {
                // There is no sessionId present in this data package, so no verification of the
                // sessionId is necessary. This can only be either a REQUEST_SESSION request, or
                // an erroneous type.

                if (typeCode.equals("REQUEST_SESSION"))
                    return requestSession(dataToProcess);
                else
                    response = generateErrorResponse(serverListener, JSONErrorCodes.TYPE_INVALID,
                            "TYPE_INVALID error generated: no such type as " +
                            dataToProcess.getPayload().getType());
            }
        }

        return response;
    }

    /**
     * Process a ServerRequest object.
     *
     * Data processed by this method is exclusively produced by other serverListeners. Any
     * operation affecting another serverListenerThread MUST be passed through the
     * CentralProcessingProtocol, to prevent threads from modifying one another and their related
     * objects. Access is okay; modification is not.
     *
     * Possible type codes are:
     *
     * REQUEST_SES_ID_RESPONSE
     * REQUEST_TAXI_RESPONSE
     * CANCEL_TAXI_RESPONSE
     * TAXI_LOC_UPDATE_RESPONSE
     * TAXI_ASSIGNMENT
     * EMERGENCY_RESPONSE
     * TAXI_ARRIVED_RESPONSE
     * PASSENGER_BOARDED_TAXI_RESPONSE
     * TAXI_TIMEOUT_RESPONSE
     * ARRIVED_AT_DEST_RESPONSE
     * CASH_ACCEPTED_RESPONSE
     *
     * Actual calculation for these types is done in the ServerListenerProtocolServer class.
     *
     * @return response
     *   If a response is warranted, it is returned to be sent back to the client.
     */
    private ClientData processServerData(ServerRequest serverListenerRequest) {

        ClientData response = null;

        String type = serverListenerRequest.getType();

        if (type.equals("REQUEST_SES_ID_RESPONSE"))
            response = serverListenerProtocolServer.requestSesIdResponse(serverListenerRequest);

        else if (type.startsWith("REQUEST_TAXI_RESPONSE"))
            response = serverListenerProtocolServer.requestTaxiResponse(serverListenerRequest);

        else if (type.equals("CANCEL_TAXI_RESPONSE"))
            response = serverListenerProtocolServer.cancelTaxiResponse();

        else if (type.equals("TAXI_LOC_UPDATE_RESPONSE"))
            response = serverListenerProtocolServer.taxiLocUpdateResponse(serverListenerRequest);

        else if (type.equals("SET_DESTINATION_RESPONSE"))
            response = serverListenerProtocolServer.setDestinationResponse(serverListenerRequest);

        else if (type.equals("TAXI_ASSIGNMENT"))
            response = serverListenerProtocolServer.taxiAssignment(serverListenerRequest);

        else if (type.startsWith("EMERGENCY_RESPONSE"))
            response = serverListenerProtocolServer.emergencyResponse(serverListenerRequest);

        else if (type.startsWith("TAXI_ARRIVED_RESPONSE"))
            response = serverListenerProtocolServer.taxiArrivedResponse(serverListenerRequest);

        else if (type.equals("PASSENGER_BOARDED_TAXI_RESPONSE"))
            response = serverListenerProtocolServer.passengerBoardedTaxiResponse();

        else if (type.equals("TAXI_TIMEOUT_RESPONSE"))
            response = serverListenerProtocolServer.taxiTimeoutResponse();

        else if (type.startsWith("ARRIVED_AT_DEST_RESPONSE"))
            response = serverListenerProtocolServer.arrivedAtDestResponse(serverListenerRequest);

        else if (type.startsWith("CASH_ACCEPTED_RESPONSE"))
            response = serverListenerProtocolServer.cashAcceptedResponse();

        else if (type.startsWith("PAYPAL_ACCEPTED_RESPONSE"))
            response = serverListenerProtocolServer.paypalAcceptedResponse();

        else;

        return response;
    }

    /**
     * Verify if a user's session ID is valid, whether currently in use or a legacy ID.
     *
     * Before any data processing happens, the sessionId of a user must be verified. There are
     * two cases:
     *
     * A. The sessionId received does not match the sessionId present in this thread's
     * ConnectedClient object. If it's a simple mismatch, return SESSION_INVALID error (sessionId
     * invalid). However, this could also be because the ConnectedClient object's sessionId field
     * is empty. If this is the case, the sessionIds table gets checked to see if there are any
     * legacy connections with the same sessionId. If there are, the ConnectedClient object
     * referenced by the legacy sessionId in the sessionIds table replaces the one that is
     * referenced by the this thread.
     *
     * B. The sessionId received matches the sessionId present in this thread's ConnectedClient
     * object. All is well, and the transaction continues.
     *
     * The retrieval of the legacy ID should not be visible to the client. They should simply be
     * able to continue using their old ID.
     *
     * @params dataToProcess
     *   A ClientData object containing data regarding the client's current request.
     * @return
     *   Either an error in the form of a ClientData object, or null.
     */
    private ClientData verifySessionId(ClientData dataToProcess) {

        ConnectedClient thisConnectedClient = connectedClients.get(serverListener);

        if (thisConnectedClient.getSessionId() != null) {
            if (!thisConnectedClient.getSessionId().equals(dataToProcess.getSessionId()))
                // There was a mismatch in the received sessionId and this thread's
                // associated sessionId. Return a SESSION_ID_INVALID error.

                return generateErrorResponse(serverListener, JSONErrorCodes.SESSION_ID_INVALID,
                        "SESSION_ID_INVALID error generated due to a mismatch between " +
                        "a received sessionId and this thread's associated sessionId");
            else
                return null;
        }
        else {
            // This user may be trying to use a legacy ID. Check.

            ConnectedClient legacyConnectedClient =
                    sessionIds.get(dataToProcess.getSessionId());

            if (legacyConnectedClient == null)
                // This user has tried guessing at an old sessionId and failed.
                // SESSION_ID_INVALID error coming up.

                return generateErrorResponse(serverListener, JSONErrorCodes.SESSION_ID_INVALID,
                        "SESSION_ID_INVALID error generated due to the use of an " +
                        "invalid sessionId");
            else {
                // This user is either extremely lucky and has guessed a valid
                // sessionId, or is using their old one. Let them have it and update
                // the session's TTL.

                // First, destroy the reference to the newly created ConnectedClient.
                // Don't worry about freeing it, since the garbage collector should
                // take care of that.

                connectedClients.remove(serverListener);

                // The legacy ConnectedClient object needs some adjusting.

                legacyConnectedClient.setClientListener(
                        serverListener.getClientListener());

                legacyConnectedClient.setTimeToLive(System.currentTimeMillis());

                // Done. Now, add it into the connectedClients table.

                connectedClients.put(serverListener, legacyConnectedClient);

                // Update the "thisConnectedClient" reference.

                thisConnectedClient = legacyConnectedClient;

                // After this, processing of the incoming data continues as normal.

                return null;
            }
        }
    }

    /**
     * Process a request from a passenger.
     *
     * Possible type codes are:
     *
     * GET_TAXI - for requesting a taxi to service a client.
     * CANCEL_TAXI - for cancelling taxi requests.
     * GET_LOC_UPDATE - getting an update on the taxi's location.
     * SET_DESTINATION - specify destination.
     * TAXI_ARRIVED - taxi arrived at client's requested destination and is waiting.
     * TAXI_BOARDED - client boarded the taxi.
     * TAXI_MISSED - client was not present at destination, and timeout occurred.
     * ARRIVED_AT_DEST - taxi arrived at destination.
     * CASH_ACCEPTED - payment accepted by the driver.
     *
     * @param dataToProcess
     *   ClientData object representing request data from a passenger.
     * @return
     *   A ClientData response, or null if something gets queued up on the CPT's queue.
     */
    private ClientData processPassengerRequest(ClientData dataToProcess) {

        ClientData response = null;

        if (dataToProcess.getPayload().getType().equals("GET_TAXI"))
            response = serverListenerProtocolPassenger.getTaxi(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("CANCEL_TAXI"))
            response = serverListenerProtocolPassenger.cancelTaxi(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("GET_LOC_UPDATE"))
            response = serverListenerProtocolPassenger.getLocUpdate(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("SET_DESTINATION"))
            response = serverListenerProtocolPassenger.setDestination(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("CURRENT_STATUS"))
            response = serverListenerProtocolPassenger.currentStatus(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("PAYPAL_ACCEPTED"))
            response = serverListenerProtocolPassenger.paypalAccepted(dataToProcess);

        return response;
    }

    /**
     * Process a request from a driver.
     *
     * Possible type codes are:
     *
     * TAXI_LOC_UPDATE - a taxi updating its location.
     * MANUAL_PICKUP - taxi manually picked up a client.
     * TAXI_REQUEST - a taxi is being requested.
     * EMERGENCY - immediately cancel the driver's current passenger request.
     * TAXI_ARRIVED - taxi arrived at client's requested destination and is waiting.
     * BOARDED_TAXI - client boarded the taxi.
     * WAIT_TIMEOUT - client was not present at destination, and timeout occurred.
     * ARRIVED_AT_DEST - taxi arrived at destination.
     * CASH_ACCEPTED - payment accepted by the driver.
     *
     * @param dataToProcess
     *   ClientData object representing request data from a driver.
     * @return
     *   A ClientData response, or null if something gets queued up on the CPT's queue.
     */
    private ClientData processDriverRequest(ClientData dataToProcess) {

        ConnectedClient thisConnectedClient = connectedClients.get(serverListener);
        ClientData response = null;

        // Verify the driverId.
        if (thisConnectedClient.getDriverId() == null)
            // This is a non-driver attempting this operation. Return a PROTECTED_OPERATION error.

            return generateErrorResponse(serverListener, JSONErrorCodes.PROTECTED_OPERATION,
                    "PROTECTED_OPERATION error generated due to a command issued with a " +
                    "missing driverId");
        else if (dataToProcess.getDriverId() != null) {

            if (!thisConnectedClient.getDriverId().equals(dataToProcess.getDriverId()))
                // Given driverId and sessionId don't match. Return a
                // SESSION_ID_INVALID error.

                return generateErrorResponse(serverListener, JSONErrorCodes.SESSION_ID_INVALID,
                        "SESSION_ID_INVALID error generated due to a command issued with a " +
                        "mismatched driverId and sessionId");
        }
        else
            // No driverId was supplied. Return SESSION_ID_INVALID error.

            return generateErrorResponse(serverListener, JSONErrorCodes.SESSION_ID_INVALID,
                    "SESSION_ID_INVALID error generated due to a command issued with a missing " +
                    "driverId");

        if (dataToProcess.getPayload().getType().equals("TAXI_LOC_UPDATE"))
            response = serverListenerProtocolDriver.taxiLocUpdate(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("MANUAL_PICKUP"))
            response = serverListenerProtocolDriver.manualPickup(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("EMERGENCY"))
            response = serverListenerProtocolDriver.emergency(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("TAXI_ARRIVED"))
            response = serverListenerProtocolDriver.taxiArrived(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("BOARDED_TAXI"))
            response = serverListenerProtocolDriver.boardedTaxi(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("WAIT_TIMEOUT"))
            response = serverListenerProtocolDriver.waitTimeout(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("ARRIVED_AT_DEST"))
            response = serverListenerProtocolDriver.arrivedAtDest(dataToProcess);

        else if (dataToProcess.getPayload().getType().equals("CASH_ACCEPTED"))
            response = serverListenerProtocolDriver.cashAccepted(dataToProcess);

        return response;
    }

    /**
     * Get a session ID for the requesting client. Does a lot of things like check who's asking,
     * whether or not they already have a session ID, and checking the database for valid usernames
     * and passwords (at least, it will soon).
     *
     * @param dataToProcess
     *   ClientData object representing request data from a client.
     * @return
     *   Either an error in the form of a ClientData object, or null.
     */
    private ClientData requestSession(ClientData dataToProcess) {
        // Send a session request to the central processor. It must have information on
        // whether the client is a taxi or not, and a reference to the serverListener
        // thread.

        HashMap<String,Object> data = new HashMap<String,Object>();

        data.put("serverListener", serverListener);

        // Check to see if driverId and driverHash are present in the ClientData.

        if (dataToProcess.getDriverId() != null || dataToProcess.getDriverHash() != null) {

            if (dataToProcess.getDriverId() != null && dataToProcess.getDriverHash() != null) {
                data.put("isTaxi", true);
                data.put("driverId", dataToProcess.getDriverId());

                try {
                    // Check to see if the supplied username and hash are valid. If they're not, an
                    // error will get returned.

                    UserAuthorizer ua = centralProcessor.getUserAuthorizer();
                    boolean valid = ua.authorizeUser(
                            dataToProcess.getDriverId(), dataToProcess.getDriverHash());

                    if (!valid)
                        // The driver's credentials didn't check out; return CREDENTIALS_INVALID
                        // error.

                        return generateErrorResponse(
                                serverListener,
                                JSONErrorCodes.CREDENTIALS_INVALID,
                                "CREDENTIALS_INVALID error generated due to a driver attempting" +
                                "to use invalid credentials to log in"
                        );
                } catch (SQLException e) {
                    // ...Yikes.
                    return generateErrorResponse(serverListener, JSONErrorCodes.BAD_REQUEST,
                            "BAD_REQUEST error generated due to an error with SQL");
                }
            }
            else {
                // Either only a hash or only a driverId was supplied. This will result
                // in a CREDENTIALS_INVALID error.

                return generateErrorResponse(serverListener, JSONErrorCodes.CREDENTIALS_INVALID,
                        "CREDENTIALS_INVALID error generated due to a missing " +
                        "driverId or hash in a 'REQUEST_SESSION' command");
            }
        }
        else
            data.put("isTaxi", false);

        ServerRequest serverRequest = new ServerRequest();

        serverRequest.setType("REQUEST_SES_ID");
        serverRequest.setMapData(data);

        centralProcessor.queue(serverRequest);

        return null;
    }
}

redpajama_set_name: RedPajamaGithub


The mite jamboree schedule is here. The jamboree will be taking place the weekend of 2/9 & 2/10 and 2/23 & 2/24.
Due to the times we have and the number of teams, some game times will be 15 minutes and some will be 20 minutes. Those slots are noted. 15 minute games will run 10, 1:30 minute shifts. 20 minute games will run 10, 2:00 minute shifts.
Teams should be ready and waiting at the rink doors 10 minutes prior to their slot so we can keep games running. Lockers will also be available in rink 1.
In keeping in compliance with the league insurance company, all towns must be made aware and follow certain concussion protocols.
We recommend that each organization require parents and players to view these videos, take the free, online courses and print their certificates to show they have taken the course.
We will discuss new protocols and requirements for the league at our upcoming board meeting.
Our organization is a youth ice hockey league serving towns of Morris County, NJ. We promote fair play, good sportsmanship and skill development.
©2019 Morris County Youth Ice Hockey / SportsEngine. All Rights Reserved.


text:
8 Mind-Blowing Songs You Can Only Ever Hear While In a Jeepney
Here's a hot take: riding the jeepney is not the easiest thing in the world. Oh, sure, we have romanticized the jeepney to the highest of metaphors, but in the end, it's still a feat of Filipino resilience that we've put up with it for so long – especially once the bass set under our chair starts pumping out one of these songs.
These songs may have had their time in the sun at some point or another, but as far as jeepneys are concerned, especially those plying the Cubao-Aurora route, these songs never even went out of style. Here now are just 8 songs you are likely to only ever hear in the jeepney in 2019:
"Ilibing Ng Buhay (Ang Mga Sosyal)" Death Threat
This song is one of many intense rap songs that never cease being a fixture in jeepney rides. What sets this song apart, though, is that its profanity-laden, violent lyrics are decidedly not radio-friendly at all, and would probably never be heard on, say, Energy FM, much less WISH 107. Death Threat was a '90s hip-hop band that featured a pre-fame Gloc 9, although he doesn't seem to have any bars in this song.
It's important to note though that Pooch is Andrew E's alter ego, so yes, he's in this song.
Standout Lyrics: Who are the conyo in your neighborhood?/ In your neighborhood, in your neighborhood?/ Say who are the conyo people in your neighborhood?/ The people we bugbog it's them…
"Pagbigyan Mo Ako" Boy Sullivan
Oh, the classic novelty song. Aside from Porky and Choppy, Boy Sullivan's ditty is a hilarious play on your imagination. Repeating words and cutting them off at the last syllable to sound dirty, this technique has been used to great effect in this song, and reminds you of a bygone era.
Standout Lyrics: Anak ka ng pu-/ Anak ka ng pu-/ Anak ka ng pu-lis sa Meycauayan…
"Magic Carpet Ride (Aringkingkingking)" Mighty Dub Katz
Why this 1995 hit is still a thing in 2019 jeepneys will forever be a mystery to me. Seriously.
Standout Lyrics: You know the one, since there's literally no other lyric aside from "Aringkingkingking."
"Upakan" by TVJ
A personal favorite of mine, Upakan is TVJ at its finest. Lulling you into a sense of complacency that you're listening to a standard '70s Manila Sound era love song, the lyrics then throw you for a hilarious loop as what starts out as a love song turns into a full-blown brawl between the two erstwhile lovers.
Standout Lyrics: Talagang 'di na kita maipagpapalit/ Pagkat walang tatanggap sayo/ Kumbaga sa alahas, ikaw ay puwit ng baso…
"Dear Kuya" by Syke
Dear Kuya is the continuation of the infamous saga of the Ghetto Dogz, Andrew E's underground rap group where, as mentioned in #8, he is known as Pooch. Syke, a former member, broke free and penned this infamous diss track, sampling Dido's "Thank You" ala Eminem, accusing Andrew E of things we'd rather not repeat in this mostly PG to all-ages website. Legend has it that Andrew E not only responded with his own diss track to this, but sent Syke to prison after suing him over the track. Man, Pinoy underground rap really is nothing like the more radio-friendly yet cringe-inducing jeje rap of today, huh?
Standout Lyrics: Yeah, we don't think there's anything we can repeat from this track that won't get us in trouble, so let's just say the whole song stands out, period.
"Buy One Take Two" by Grin Department
Grin Department is one of my personal guilty pleasures, even if their irreverence knows no bounds. These are the guys who would make wildly dirty jokes in front of kids, and tell the kids to ask their parents what they mean. Needless to say, a good chunk of the band's discography is simply not radio-friendly. This track has that in spades.
Standout Lyrics: May libre kang toooooooothpaste/ At libre kang tooooooooth/ May libre kayong tooooooooth/ May libre kayong tooooooth!!!/ Toothbrush!
"Ignition (Tagalog Remix)" by Gagong Rapper
Oh, wow. Here goes another infamous song that we can't possibly quote the lyrics to. Gagong Rapper may or may not fall under your classification of "jeje rap," but he certainly lives up to his name. Turning R. Kelly's Ignition (Remix) into a Tagalog rap song with unbelievably obscene lyrics, it's amazing jeepneys keep playing this song and get away with it all the time.
Standout Lyrics: Let's not.
"This Is A Journey Into Sound" by Eric B and Rakim
When a jeepney pops in a remix tape, more often than not, this is the first track that will always play. Failing that, you'd just hear the opening riffs, then you move straight into a dance version of Celine Dion's "My Heart Will Go On." It's ubiquitous, and it makes you wonder if only one guy ever put together all those mixtapes for all the jeepneys you've ever heard. They never seem to have the same songs in the mix, but the words "this is a journey into sound" will always, always bookend the mixtape.
Standout Lyrics: This is a journey into sound/ Doo-doo a-doo-doo a-doo-doo a-doo-doo…
8 Refreshing Ideas to Make Recycling Fun!
YouTuber Nate Punzalan takes on the Jollibee Drive-Thru Challenge with 8List.ph | #8MinutesWith
Posted on Nov 30, 2019 Dec 4, 2019
Matthew Balicudiong
This Week's New Music: Releases From Eminem, Lauv, Halsey, BTS, and More
Malasimbo's 10th Year Brings It Closer to the Heart of Metro Manila
Southern Indie: 8 Best Songs from the Vis-Min Artists of Melt Records
Karl R. De Mesa
8List's Gr8est: The 8 Best OPM Albums of the 2010s
Posted on Dec 29, 2019 Jan 3, 2020
8 Songs We Wish We'd Never Hear Again In 2020
Infinite Time: Reasons Why We Aren't Over Super Show 8 in Manila
Love, Poem In Manila: 8 Facts About The Nation's Sweetheart IU
The Artist of the Decade: A Look Back at Taylor Swift's Most Iconic Moments

redpajama_set_name: RedPajamaCommonCrawl


For Code 39 and for Interleaved 2 of 5 barcodes, this property, when set to true, requires verification of the checksum, according to the standard specifications of each symbology. The default value is false because, in practice, checksums are seldom used with these codes. For other symbologies the value of this property is ignored, because their checksums are either nonexistent or mandatory.


If you are one of the many readers who are very happy with the content we provide, you might want to know that there are many ways you can say "Thank You!". In this short blog post, I will give you a few suggestions on how you can help the editorial team. As you will see, there are many ways in which you can chip in. Some of them will require only a few seconds of your time.
If you discovered on our site a very useful tutorial, don't hesitate to blog about it and refer it to other people. By doing this, you will help both our team and your readers: our articles will be more popular and they will be found more easily by people who will benefit from reading them. As we all know, nothing is as powerful as word of mouth.
Don't hesitate to bookmark our site on any of the bookmarking services (social or not) you are using.
By bookmarking our articles, other people will read them and increase their popularity. We will always welcome & appreciate new visitors.
Even though we have published good tutorials so far, we will always welcome your ideas on what to write next. You can easily do this by leaving a comment at the end of this article or by sending us an e-mail at webmaster at[@] wintuts dot[.] com. All good ideas will be taken into consideration when deciding what to write next.
Also, if you are good at writing tutorials, you can always join our team. All you need to do is to contact us on the e-mail provided above.
We cannot. As that tutorial was done using the account details of a friend of ours. We don't have a Yahoo Mail Plus account ourselves and that person can no longer help us remake all the screenshots.
Windows Mail and Yahoo Plus!
I think it might be helpful to add that if you have a Yahoo Plus Mail account and use a Yahoo email address that ends in @ymail.com or @rocketmail.com, you must include these lines in the email username box under 'Servers' in the account setup. This is due to the inconvenient fact that when logging into the Yahoo mail page, you cannot just enter your username without the @...com like you can if you have a @yahoo.com address. I wrestled with this problem for a while, until I tried it with the full email address and it worked perfectly after that.


text:
Bolder, Carl Honoré 29 February 2020
2019 non-fiction. Honoré looks at the practicalities and possibilities of ageing.
Perl Weekly Challenge 46: corrupt messages and hotel rooms 28 February 2020
I've been doing the Perl Weekly Challenges. The latest was about recovering a corrupted message and solving an iterative problem.
West with the Night, Beryl Markham 27 February 2020
1942 autobiography of the first person to fly the Atlantic solo non-stop from east to west.
Julian Simpson Radio Plays 26 February 2020
After having enjoyed the recent radio plays based on The Case of Charles Dexter Ward and The Whisperer in Darkness, I sought out earlier audio drama written and directed by Julian Simpson.
Fifth 1 Player Guild UK Meet 25 February 2020
The 1 Player Guild is a group of solo game players, communicating through BoardGameGeek. This was the fifth get-together for the UK contingent, and we were back in the upstairs room of a pub in Silverstone.
With images; cc-by-sa on everything.
Rules of Prey, John Sandford 24 February 2020 - 2 comments
1989 thriller, first in the long series dealing with police detective Lucas Davenport. Someone is raping and murdering women in Minneapolis, but unlike your typical serial killer this one is smart…
Shokugeki no Soma season 3.2 23 February 2020
2018 cooking story, shounen manga adaptation in 12 episodes: AniDB, vt "Food Wars: The Third Plate: Totsuki Train Arc". Yukihira Sōma fights cooking duels to try to let himself and his friends be allowed to stay in the élite Totsuki cooking school.
Kitty's Greatest Hits, Carrie Vaughn 22 February 2020
2011 urban fantasy, short stories in the world of Kitty Norville – which means werewolves, vampires, and other odder things.
Perl Weekly Challenge 45: bad codes and quines 21 February 2020
I've been doing the Perl Weekly Challenges. The latest was about a bad encoding scheme and producing the source of a program.
Old Loves Die Hard, Lauren Carr 20 February 2020
2011 cosy mystery, second in the Mac Faraday series. Police detective turned heir Faraday finds his ex-wife importuning him to let them get back together… but soon enough she's dead, and so's her new husband.
Rallyman GT unboxing and first look 19 February 2020
My copy of Rallyman GT has arrived; I backed the Kickstarter in 2018, it was originally expected last November, and it finally made it to me on 30 January.
The Future of Another Timeline, Annalee Newitz 18 February 2020
2019 science fiction. There have always been the Machines: nobody knows how they work or where they came from, but they let people travel back in time, and return. Tess is a traveller from 2022, studying history and making illicit changes to it. In 1992, Beth is trying to work out the right thing to do as her life goes out of control.
The Path of Cunning Issue 2 17 February 2020 - 1 comment
The second issue of the GURPS fanzine The Path of Cunning is out.
On the Clock, Emily Guendelsberger 16 February 2020
Guendelsberger worked as a reporter at a local newspaper; it was closed down. Through a combination of poverty and journalistic curiosity, she took a pre-Christmas job at an Amazon warehouse ("fulfillment center"), then later worked at a call centre and in a fast-food outlet.
Shaun the Sheep: The Movie 15 February 2020
2015 animation, dir. Mark Burton, Richard Starzak; IMDb / allmovie.
When the sheep get bored with the hard work of life on the farm, they lock the farmer in a caravan for a day off. Chaos ensues.
Kitty's Big Trouble, Carrie Vaughn 14 February 2020
2011 urban fantasy, ninth in the series. Kitty Norville, the late-night DJ who has become the world's most famous werewolf, goes to San Francisco to help out a friend. Who happens to be a vampire…
Perl Weekly Challenge 44: goal-seeking 13 February 2020
I've been doing the Perl Weekly Challenges. The latest was about arranging numbers and arithmetical operations.
Trainwreck, Sady Doyle 12 February 2020
2016 non-fiction. Doyle examines the history and the anatomy of the celebrity trainwreck, the (female) figure who is deemed to have fallen from grace and behaved badly.
Marlow Tabletop and Board Games 16 January 2020 11 February 2020
This Meetup-based boardgames group continues to meet at the Marlow Donkey.
Fuzzies and Other People, H. Beam Piper 10 February 2020
1984 science fiction, re-read. For the Fuzzies to be able to testify against the people who kidnapped and enslaved them, they need to be veridicated… which means they need to be able to lie. But that's not a thing that Fuzzies do…
Perl Weekly Challenge 43: rings and self-descriptive numbers 09 February 2020
I've been doing the Perl Weekly Challenges. The latest was about allocating numbers to rings and generating self-descriptive numbers.
A Princess in Theory, Alyssa Cole 08 February 2020
2018 romance. Naledi Smith is studying epidemiology in New York while waitressing to pay the bills, and really doesn't have time for those emails claiming to be from an African prince to whom she was betrothed as a child. But Prince Thabiso is real…
Handycon 7 07 February 2020
This boardgame convention was still at the larger venue in Maidenhead, but with more people booked in and much more of a crush, especially on Saturday.
The Moon, Oliver Morton 06 February 2020
2019 non-fiction. Morton considers the history of human interaction with the Moon.
Games in Reading, 16 January 2020 05 February 2020
I went over to a friend's place for boardgames.
Vision in White, Nora Roberts 04 February 2020
2009 romance. Mackenzie Elliott and three of her childhood friends run a wedding business, everything from engagement photos to the Big Day. But, inspired by the example of her mother, Mac thinks true love can't be for her…
Perl Weekly Challenge 42: octal and balancing brackets 03 February 2020
I've been doing the Perl Weekly Challenges. The latest was about printing in octal and detecting balanced brackets.
Kitty Goes to War, Carrie Vaughn 02 February 2020
2010 urban fantasy, eighth in the series. Kitty Norville, the late-night DJ who has become the world's most famous werewolf, is still post-traumatic from the events of the last book, but has to face two new problems.
January 2020 Trailers 01 February 2020
Some trailers I've seen recently, and my thoughts on them. (Links are to youtube. Opinions are thoroughly personal. Calibration: It was his love of hatred that kept him going.)


text:
Times Past, Jonathan Smyth
Published: January 2, 2021, 17:23
Ballyhaise bridge with Humphreys' former home in the background, now the Agricultural College run by Teagasc. 8Photo: Courtesy of Cavan Library
Times Past: Big night out in Ballyhaise in 1857
Historian Jonathan Smyth's latest edition looks back at reports from a Ballyhaise Estate Farming Society dinner from 1857...
There is nothing like a good meal to celebrate the achievements of a year's work and, to this end, the Ballyhaise Estate Farming Society annually sat down to a dinner where they received a well-earned 'pat on the back' from the landlord for doing a good job. The event was hosted by the local landlord William Humphreys of Ballyhaise House and brought together all his surrounding tenantry, some of whom would be amply awarded for their skills that had contributed to the prosperity of the estate.
William Humphreys had inherited the lands at Ballyhaise from his father William Snr. Earlier, in the 18th century, the estate belonged to the Newburgh family from whom the Humphreys purchased it. In 1906, Ballyhaise House passed from the Humphreys' hands when it was sold and thereafter became an agricultural college, which today is run by Teagasc.
With an air of loud applause, toasts were made to all and sundry including the 'Queen of England' and to the achievements of the local farmers. The 'shindig' was held on November 25, 1857 in the 'large room' of the Market House, Ballyhaise, and was filled to capacity by the 'happy and contented tenantry' who were to receive handsome premiums for their exhibition of 'stock and green crops' as was to be read from the premium lists.
According to this newspaper, landlord Humphreys always kept an active and enthusiastic eye on his tenants' farming activities and he must have been pleased by their efforts. Some of the farmer tenants in attendance had come from as far away as Mountnugent.
Agricultural importance
A meal was provided for the assembled families by Mr Kennedy of Ballyhaise and was said to have been 'well and plentifully served up, in a manner and style that does that gentleman credit'. Glasses were filled to the brim and a toast drank to 'Queen Victoria' and after several more glasses of vino, an ever more cheerful applause erupted from the crowd.
The chairman managed to get to his feet and called for yet another plethora of toasts, then he asked for Ireland's 'continued prosperity' and 'may she use agriculture as her highest and most beneficial interest', he said. The celebrations continued with cheering as the chairman toasted the ploughs of the farmers with the words 'speed the plough', while the newspaper made the point that Ireland had no great history of making ploughs but that her prosperity as regards manufacturing lay more so in the linen industry.
'Ireland', according to the chairman, had 'a people, able and stout, and willing to work … and in 'these respects there was a vast difference', he believed, 'between the Irish and English'.
Having raised a glass to Mr Humphreys, another speedily followed for Mrs Humphreys, whom the exuberant speaker thought to be 'an ornament to her sex, and is not a whit behind her husband in looking after the interests of the Ballyhaise estates'. She had demonstrated her care towards the social and domestic needs of the tenantry having anxiously ensured that the estate's children would be 'well-educated', a matter reflected by the strong attendance of children at the schools in the locality.
Premiums won by the farmers added a most welcome supplement to people's income and the winners included the following: First class awards for farms above 15 acres with cows went to Henry Nesbitt, Ballyhaise and Joseph Johnstone, Lissagoan. Second class awards for farms 15 acres and under, went to Bernard Sheridan, Ballyhaise; John Brady, Carrickmore and Laurence Kennedy, Ballyhaise. First class awards for farms above 15 acres with two-year old cattle went to Robert Foster, Drumliff; Rev Mr Moneypenny, Broomfield; and, as already mentioned, Joseph Johnstone. Second class awards for farms 15 acres and under with two-year old cattle went to Thomas Kennedy, Killyvanny; John Wood, Drumliff; Henry Scarlett, Lissagoan and Patrick Reilly, Corgarive.
Under the many other categories, the following farmers won premiums also for their progressive work: Patrick Rudden, Brockley; William Phair, Drumliff; Thomas Topham, Lissagoan; James Dolar, Cornamuckla; Thomas Shannaghey, Cornamuckla; John Ebbitt, Killyvanny; William Dolan, Cornamuckla; Matthew M'Annurney, Corgarive; Mr Farrell Fox, Cornamuckla; William Foster, Kilmainham; William Moore, Ballymackarue; John Moore, Ballymackarue; Henry Nesbitt, Raheg; Patrick Lynch, Barcony; Richard Tubman, Crossreagh; Robert Foster, Drumliff; Thomas Shannaghey, Cornamuckla; Mathew M'Annurney, Corgarive; James Dolan, Cornamuckla; Mrs Widow Fox, Cornamuckla; and Patrick Fagan, Barcony.
Complimentary comments were made on the production of green crops on the estate as well.
The premiums won by the farmers could now be used to improve life on the farm and, when they were asked what they would like to choose, a note was taken of what they picked, with some selecting 'churning machines, ploughs and timepieces'. The Rev Mr Moneypenny proceeded to deliver a speech, telling the diners that: 'He had much experience in the world and, when he looked abroad amongst mankind, he found there were great rogues. Virgil himself had well defined this', and yet, 'he would say, that if there was honesty at all to be found, it was with the agricultural classes' adding that, 'they were the bone and sinew of the Emerald Isle'.
Having enjoyed the entertainment, the farmers gave three of their loudest cheers for Mr and Mrs Humphreys, and 'their faithful agent'.
ROYAL SCHOOL HOCKEY
On March 16, 1901, the Cavan Royal School's hockey team, played against Castleblaney in the Royal School grounds and after 'a well-contested' game the home team won by two goals to one. The game began with fast play but towards the end it was very slow 'owing to' the rain. The Cavan team demonstrated superiority and, after 20 minutes, McConnell made the first score with a goal for the Royal.
A sterling defence was said to have been played by players 'Cloak and Knight' for the Monaghan side. In the second half, Castleblaney pressed on and McGailey scored a goal for them. Cavan were now 'on the alert' and Seall took a pass from McAllan who playing a good forward game, was to score the Royal's second goal which sealed the school's victory.
Times Past: Hannah Lynch - Irish author and political activist


To frugal shoppers, Cyber Monday is the answer to Black Friday, without the hassle of the traffic, the long times, and the potential of being trampled by a crowd of overzealous shoppers. Human Resources professionals, however, see Cyber Monday shopping at work as a threat to workplace productivity. After all, much of Cyber Monday shopping occurs at work on company-owned devices.
Almost half of employees (49 percent) typically shop from work on Cyber Monday, and 36 percent say they have taken a day off to shop, according to Robert Half Technology, a California-based staffing agency.
…shop on their lunch break.
…shop while spending time with their co-workers.
…shop during conference calls or in-person meetings.
Rosemary Haefner, Chief Human Resources Officer at CareerBuilder.com believes in taking a more holistic approach towards employees spending company time and resources on Cyber Monday shopping at work. He says online shopping shouldn't be a problem as long as it doesn't impede employee productivity.
In its 2016 survey, Robert Half Technology found that employees take time throughout the workday to shop.
This year's Cyber Monday deals could cost employers over $500 million in lost productivity. Telling employees to not shop at work is pointless, so what should HR do?
Should HR allow Cyber Monday shopping at work?
So, it's not practical to block shopping sites. Instead, companies should set up computers specifically for employees to shop while at work. Although there's always the added concern of credit card information being stolen on a shared computer and that an employee may steal another's information.
At the end of the day, HR should refrain from forcing employees to feel like they have to sneak around to snag Cyber Monday online specials. Employees should be encouraged to manage their time and productivity.
Turns off all distractions such as cellphone notifications regarding discounts through the day.
Give yourself a deadline and stick to it. This way, you don't waste the entire day browsing deals on the Internet. You may be surprised to learn how focused and productive you can be when you give yourself self-imposed deadlines.
Multitasking can result in lost time and productivity. Rather, commit to a single task before moving onto the next project. If you plan to spend 20 minutes shopping on Cyber Monday at work then do it and then move on to focus on the next project.


text:
Mark Matthews was the oldest surviving Buffalo Soldier in the United States Army when he died at age 111 in 2005.

Mark Matthews may also refer to:
 Mark A. Matthews (1867–1940), Presbyterian minister and Prohibitionist
 Marvin Kratter or Mark Matthews (1915–1999), New York real estate investor and musician
 Mark Matthews (lacrosse) (born 1990), Canadian and American lacrosse player

See also
 Mark Mathews (born 1983), Australian professional surfer
 Marc Matthews (born 1940s), writer from Guyana
 Mark A. Mathews (1926–2018), American academic

redpajama_set_name: RedPajamaWikipedia


My name is Marta and I initially trained as a nutritionist in the past.
Over the years, I became interested in body, mind and soul. And I have added energy healing and channeling to my skills base.
I am an accredited energy healer with The College of Psychic Studies in London, where I went on to undertake the healing course. I am an intuitive healer and work from the heart.
Since 2009 I share my skills knowledge and experience with people through healing sessions.


text:
Even in 2017, Uttar Pradesh could have been "saved" if the Opposition had stood united
Written by Teesta Setalvad | Published on: June 1, 2018
A year and two months ago, it was not so popular to speak, or dream of a united opposition against Modi and Adityanath in Uttar Pradesh. But even after the seemingly spectacular victory of the combine (and all of us who viewed that election from the grassroots in UP know that it was Adityanath's outfit that brought home 150 seats!!), the numbers told the story of Opposition split that drives the saffron juggernaut. If and if they meet with a firm and united Opposition, even the consolidation under Modi and Yogi could have been averted. And India and UP, would have been saved the horrors of what is currently afoot in that state.
To bring perspective to the debate, we are re-publishing our story of March 23, 2017. At the time even national newspapers preferred not to do the maths!
There is no disputing that the Narendra Modi-led BJP's decisive, even spectacular victory in the politically significant state of Uttar Pradesh signals not just that much of his personal popularity remains but also that his party, grounded as always with the huge organisational muscle of the Rashtriya Swayamsevak Sangh (RSS) has mastered the fix that the Indian first past the post electoral system requires to win. The writer has written about the brazen use of money and muscle by the BJP, as also the carefully spun anti-minority rhetoric of Modi and his men, as the seven phase polls in UP wound down to the last day on March 8. The utter disregard for the Muslim minority vote or their concerns has laced the BJP's policy framework and campaign especially since Modi captured the national leadership in the run up for the last general election in May 2014. (he was elected prime ministerial candidate in 2013)
Despite the high drama of this particular win, and the high decibel superlatives on Indian television channels so cheekily described by one of India's sane television watchers, the veteran Shailaja Bajpai when she wrote of a "Dear Modi from Trump" column on March 16, dry numbers tell a more nuanced tale. Bajpai describes the terms used by India's television anchors, " 'Look how they described your brilliant victory in the polls: "Modi Tsunami Sweeps", "Tsunamo", "Modi juggernaut", "Modiwave", "NaMoStar", "NaMoStan", "NaMoIsDominant",
"NaMoForNewIndia", "Modi, Modi, Modi'" and goes on in Trump mode to bemoan the American New York Times (NYT) and BBC as 'losers' in comparison!! What makes Indian television so grovel, fear, sycophancy or worse, a brazen corporate connect, is a question, too that needs asking!
Let's come back to the results and the much needed, rational analysis, however. While there is no denying at all that the 'Modi phenomenon' needs serious, focused and more rigorous political tackling, there is no gainsaying the fact either that the BJP's saffron chariot may have been convincingly halted in Uttar Pradesh just as dramatically as it was in Bihar just a year and a quarter back in November 2015, had the 'secular' opponents to what we in India dub as a proto-fascist force like the RSS, tied up in a grand alliance.
What then prevented from the political opponents of saffron-hued majoritarianism from coming together 'to defeat the common enemy?'
Narendra Modi's party finally ended up with an impressive 312 seats in a House of 403, polling 39.7 per cent of the state's votes, while the Samajwadi-Congress alliance won just 54 seats. Mayawati's Bahujan Samaj Party finished third with 19 seats. The BJP's two allies, the Apna Dal and the Suheldev Bharatiya Samaj Party, together won 13 seats, with the Apna Dal's 9 seats outdoing the Congress's 7.
But what about the vote share? While there is no disputing that the defeat of all 'secular' forces in the politically significant state of Uttar Pradesh (UP) has been ignominious and the victory of the BJP under Modi decisive, yet again, the disparity between vote share and seats won, by themselves tell a story. Have a look at what is already up on the Election Commission of India Website.
A whopper of 312 seats won by the saffron BJP was a result achieved with a decisive 39.7 voter share, not an insignificant feat. What is not so explicable however, until one dissects both India's first past the post system, voter distribution and share over vast regions and constituencies is the fact that second in vote share is the Bahujan Samaj Party (BSP) that even in the state assembly seats of 2017 got the second highest vote share at 22.9 per cent. The Samajwadi Party (SP) at a close number 3 with 21.8 per cent of the vote share won 47 seats and the Congreess with barely 6.2 per cent of the vote share got 7 seats!!
Number crunching takes us further: the BJP's votes in 183 of the seats it has won are less than the combined votes of the Samajwadi-Congress alliance and Mayawati's party, whom outgoing chief minister Akhilesh Yadav had tried courting on the eve of the results. Only The Telegraph, published from Kolkatta dealt with this at some length. Had the leaders of the three parties that opposed the RSS-BJP ensured that it was not a triangular contest (Akhilesh Yadav of the SP, Rahul Gandhi of the Congress and Mayawati of the BSP) and struck a successfully functioning pre-poll alliance, the BJP would have, arguably, won just 129 seats. The BJP's allies too would have lost seven of the seats they won, and the coalition would have logged in a tally of 263, a clear majority (this is after the adding the seats won anyway by the alliance and the BSP). Not as dramatic as what the BJP clocked in, but a clear majority nevertheless. And UP would have been saved the current brand of rabid majoritarianism, made worse by the choice of Adityanath by the Modi-Shah combine as chief minister.
In November 2015, another politically significant state of Bihar had ensured just such a loss for the BJP (under Modi)—the second state defeating the 'charismatic prime minister' after Delhi state in January 2015. In that election too the BJP had received more votes than any other party - 24.4 per cent of those polled in the state overall. But the "grand alliance" of the JDU (16.85 per cent of the vote), RJD (18.35 per cent) and the Congress (6.66 per cent) swept the election with a combined vote share of 41.86 per cent, winning 178 seats in a House of 243. The BJP won just 53 seats. The dye has however now been metamorphically cast and the run up to 2019 already gives a handicap to Modi and the BJP.
Here's a quick look at only some of these 183 seats where the tally of the SP-INC and BSP's votes is higher than that of the winning candidates, from the BJP. [The Sabrangindia Team has done a seat wise tally of these seats that will be uploaded here by the end of this week]. In the rural seat of Ajgara, that falls within the parliamentary seat of the prime minister (Varanasi), the number 2 candidate, Lalji Sonkar (SP) polled a not insignificant 62,429 votes and the number 3 from the BSP polled 52,480. Together this amounts to 1,14909 votes a decisively higher number than that polled by the winner from the BJP's alliance partner, the Sukhdev Bharatiya Samaj Party, Kailash Nath Sonkar who got 83,778 votes. Similarly in another constituency located within the Varanasi segment, Pindra also a rural segment, the combined votes of the number two candidate from the BSP and the number 3 from the Congress were 10,1954 votes, higher than what the winner from the BJP got which was 90,614 votes.
Two of the eight assembly segments could have thus been wrested from the BJP in the Varanasi segment and in another three, Varanasi North, Shivpur and Sevapuri a more decisive fight ensured if such a grand alliance had been in place. Similarly look at the Aurai seat where the BJP candidate won with 83,325 votes. The SP candidate at number 2 with 63,546 votes and the BSP at number 3 with 49,059 votes together got 11,2605 votes.
Or check out the Aonia seat where the SP and BSP at number 2 and 3 respectively polled 11,3811 votes and the BJP won with just 63,165 significantly lower than the combined tally. In Allahabad North constituency, again, the BJP won with 85, 518 votes when the number two, sassy student leader Richa Singh from the SP obtained 60,182 votes and the number 3 from the BSP polled in 40,499 (totalling 100,681 votes.
The list is long and a similar trend can be seen in 183 of UP's state assembly seats. Aliganj, Aligarh and Alapur tell a similar story. In Aliganj the combined votes of the secular opposition is 121119 votes and the BJP candidate won with 88,695 votes. In Aligarh where the BJP won with 11,3752 votes the number 2 and 3, SP and BSP respectively polled 98,312 and 25,704 votes totalling12,4016 votes. Similarly in Alapur where the BJP won getting 72,366 votes, the combined opposition vote is far higher at 11,8444.
So what was it about narrow, competitive politics that did not ensure a sagacious and rational alliance that could have stopped the majoritarian and supremacist BJP in its track? Will India be able to recover from this historical miscalculation and political short-sightedness? Amethi in Uttar Pradesh is a particularly crucial constituency for the Congress given the fact that the Gandhi scion, Rahul Gandhi wins his parliamentary seat from here. Even here, in this crucial assembly segment, the 'secular opposition' was not able to bury their personality driven differences and what followed was not a three but a four cornered contest!
Here is what the poll results show: The SP candidate polled 59,161 (quite close to the winner from the BJP who acquired 64,226 votes) while the BSP at number 3 polled 30,175 votes; worse the Congress also polled a separate candidate (belying the alliance logic) and got 20,241 votes. Add up the three opposition parties and you have a figure of 10,9577 votes decisively higher than what the BJP candidate won. But win they did.
The Muslim Vote
This writer has written consistently on how the BJP has over the past two elections successfully marginalised the Muslim vote in UP. Muslim votes make up about 19% of the electorate. The BJP's resounding victory , even in Muslim concentration areas, has led to speculation that, either the Muslim vote got divided between SP and BSP letting BJP win easily, or that Muslims voted for BJP. Both appear to be erroneous theories.
The SP (29%) and BSP (18%) together got 47% vote in the 59 constituencies in UP where more than a quarter of the voters are Muslim. This is virtually unchanged since 2012 elections, although it went down to 43% in the 2014 Lok Sabha elections. So, the Muslim support for the two parties is intact. The difference this time was that the BJP mopped up most of the other votes --getting 39% of total votes. This was less than their 43% in 2014 Lok Sabha elections but still so far ahead of the rivals that they won 39 seats while SP won 17 and BSP ended up with none. SP's 29% vote share in these seats shows that its Muslim sup port base was largely intact.The Dalit Vote There was a much hyped battle between the BJP and BSP to win the Dalit votes, especially non-Jatav dalits. Dalits make up about 21% of the population in UP. Since the BSP lost badly in the elections ending up with just 19 seats, there was a view that the Dalits voted en masse for the BJP.
Actually , the BSP has got 24% votes, down from its 27% in 2012 but up from 23% in 2014 Lok Sabha elections. Among the 85 reserved seats in the state, the BJP outflanked all other parties by getting 40% of the votes with the BSP a distant second at 24%. Again, the BJP's appeal was across all castes and may have included some Dalit communities too, but BSP's vote share indicates that it is just about retaining its Dalit base while the BJP surged ahead.
Much is now being written and said about the need to match Modi's social media engineering, the BJP's troll expertise, the Modi magic with the electorate. None of these are insignificant observations. Senior analyst and former Indian bureaucrat, SP Shukla has called for the need for a more transformative agenda that appeals to the small peasantry and youth, but also which rises above the simple arithmetic of identity based politics. The language of that mobilisation will be crucial in coming months and a real challenge to the Indian political class. Are they up to the task?
Says Shukla, "The explosive potential of the peasantry in crisis cannot be overstated. Nor that of the burgeoning legions of youth seeking jobs with dignity. Today they could be won over by the slogans of cultural nationalism and the tactics of social engineering. But it would not be long before the hollowness of the strategy is exposed spreading massive discontent and unforeseen, anarchic upheavals.
No nation-state can survive long, let alone prosper, with a huge population of 18 crores of its people sulking as second- class citizens and feeling insecure. No amount of 'nationalist' sloganeering can eradicate that fact. No amount of force can alter that fact. The only viable politics for India is that based on the inclusive and modern values of Equality, Liberty, Fraternity and Justice. We need to reinvigorate these fundamentals enshrined in our constitution and reconstruct the narrative of nation-building.
This is a challenge that has been long in the making.
BJP may find it Tough going as euphoria ends, reality dawns: UP Polls 2017, Economic Times


text:
Landsec and RBS become first companies to join RE100, EV100 and EP100
Property developer Landsec and the Royal Bank of Scotland (RBS) have become the first two firms in the world to have joined all three of The Climate Group's sustainable business programmes - RE100, EV100 and EP100.
The two companies both joined EV100 today (24 April)
The initiatives focus on sourcing 100% renewable energy, switching to 100% electric vehicles (EVs) and achieving maximum energy productivity, respectively.
Both RBS and Landsec have previously joined the RE100, with the former having recently pledged to source 80% renewables by 2020, before using certificates to reach 100% five years later, and the latter having powered its retail estate with 100% renewable electricity since 2016.
But today (24 April), both Landsec and RBS also committed to the EV100, which aims to help make zero-emission transport "the new normal" by 2030.
Under EV100, RBS will replace 300 vehicles fleet with fully electric alternatives on an ongoing basis. To support this shift, it will install a further 450 EV chargers across its estate by 2025 and take its total charge point stock past the 600 mark by 2030. To put these figures into perspective, the bank currently hosts just 12 EV charging points.
Landsec, meanwhile, has pledged to ensure that it has at least 300 EV charging points installed across its UK portfolio of retail, leisure, office and domestic properties by the end of 2019.
As for the EP100, RBS has today joined the scheme, which is run in partnership with the Alliance to Save Energy and delivered in association with the World Green Building Council's (WGBC) net-zero carbon buildings commitment team. The programme's aim is to "bring together a growing group of energy-smart companies" to make energy efficiency an integral part of business strategies.
RBS will aim to increase its energy productivity by 40% by 2025, against a 2015 baseline, under EP100. The move builds on its investment in upgrading 103 Building Management Systems (BMS) for greater energy efficiency.
"At RBS, we recognise the urgency of action around climate change and managing our own footprint is a significant aspect of that." RBS's sustainable energy sponsor and head of large corporates and institutions Laura Barlow said.
"Through procuring 100% renewable electricity, improving our energy productivity and decarbonising transportation, we are able to contribute to global efforts to achieve the Paris Agreement goals."
Landsec has already committed to the EP100 initiative and is reportedly on track to meet its 2030 goal of cutting its carbon intensity by 40% by 2030 against a 2013-2014 baseline.
"We are delighted to be named as one of the first companies to join all three of The Climate Group's business initiatives, following our previous commitments to procuring 100% renewable power and doubling our energy productivity," Landsec's head of sustainability and public affairs Caroline Hill added.
"We understand that more and more of our customers are opting to drive EVs and we want to ensure they have the opportunity to charge when visiting a Landsec asset."
EV100 boon
The announcements from Landsec and RBS come shortly after The Climate Group published its first EV100 annual progress report, revealing that 31 companies had joined the initiative between its 2017 launch and February 2019.
The coalition of companies, which includes the likes of BT, Ikea and Unilever, have collectively pledged to electrify more than 145,000 vehicles by 2030, according to the report, with the majority prioritising their city-based fleets in a bid to reduce air pollution.
In total, EV100 has spurred the adoption of 10,000 low-carbon vehicles to date and is now targeting two million vehicles by 2030.
However, a lack of infrastructure is a key challenge facing EV100 members if they are to achieve their EV visions. During its research for the report, the Climate Group also asked all EV100 members what the key barriers to EV adoption for their organisations were, with seven out of ten citing a lack of charging infrastructure as their biggest concern. This finding echoes a string of reports recently published by the likes of PwC, Bloomberg New Energy Finance and the Department for Transport, which all concluded that investment into EVs themselves is currently outstripping commitments to supporting infrastructure for charging.
electric vehicles | Energy Efficiency | renewables
Energy efficiency & low-carbon | CSR & ethics | Technology & innovation | Renewables


text:
Delays are wasting opportunities for prevention of chronic disease and healthcare savings
Brussels, Wednesday 13 November – Fifteen EDC-Free Europe campaigners are presenting José Manuel Barroso, President of the European Commission with a huge EDC-Free poster today in an urgent call for action on endocrine disrupting chemicals.
The EDC-Free Europe coalition, made up of 50 partners representing hundreds of EU citizens' organizations (1), has integrated dozens of photos from campaign activities across Europe into a poster portraying Barroso. They are calling on him to quickly bring forward delayed EDC policy proposals to better protect people's health and prevent chronic diseases. The chronic disease associated with EDCs is a leading public health challenge and drain on the economy.
The campaign action today reiterates a call made in a letter to Barroso in May this year. (2) The letter called for an end to delays in regulatory action on endocrine disrupting chemicals (EDCs), and immediate action to reduce people's exposure. The groups say that postponed decisions will unnecessarily prolong people's exposure to these chemicals. Low-level, everyday exposures to EDCs disturb the human hormone system and have been linked to many serious chronic diseases that are increasing in incidence in Europe, such as breast cancer.
"It was democratically agreed by the European Parliament that scientific criteria for EDCs would be set by December this year. The European Commission's recent decision to launch an impact assessment on criteria ignores the December deadline. Since when do scientific criteria get set by impact assessments? This move ignores the public will and goes against scientific recommendation," says Lisette van Vliet, HEAL, one of the campaign partners in the coalition.
Scientists actively engaged in endocrine disruptor research made their position on the need for urgent action very clear earlier this year. In May 2013, 89 leading public health scientists from around the world signed the Berlaymont Declaration on endocrine disruptors, which calls on the European Commission to act. (3) They list EDC-related conditions as infertility, congenital malformations (and testicular cancer), breast cancer, prostate cancer, ADHD, obesity and diabetes, amongst others.
Industry pressure, rather than scientific controversy about the criteria to protect EU citizens from harmful EDCs, may be at the heart of why the decisions are being delayed.
In October, the Swedish and Danish ministers of Environment wrote to Janez Potčnik, the European environment commissioner expressing their concerns that an impact assessment would take socio-economic criteria into account, which they claimed is not within the scope of the biocidal products Regulation's (BPR). (4)
"HEAL believes that the Commission has obtained ample scientific input and should stand up to industry bullying on the criteria. It should publish a revised strategy as soon as possible and ensure that REACH does not authorise chemicals that are hormone disruptors when safer alternatives exist," Ms van Vliet adds.
Lisette van Vliet, HEAL Senior Policy Officer, email: lisette@env-health.org Tel: +32 2 234 3645, mobile: +32 484 614 528
Genon K. Jensen, Executive Director, Health and Environment Alliance, Tel: +32 2 234 3642, Mobile: +32 495 808 732, Email: genon@env-health.org
Diana Smith, HEAL Communications and Media Adviser, Diana@env-health.org, mobile: +33 6 33 04 2943
Notes for journalists
1. EDC-Free Europe campaign has 50 signed-up members representing hundreds of groups throughout Europe, including trade unions, consumers, public health and healthcare professionals, and advocates for cancer prevention, environmentalists and women's groups. Those in Brussels today will carry banners with the campaign message - STOP hormone disrupting chemicals and blown-up photos of suspect consumer items with arrows asking the question: "Is this disrupting me?" as well as the collage of many photos arranged in a visual image portraying President Barroso.
2. Joint NGO letter to President Barroso and Commissioners: Call to reduce our exposure to EDCs, 7 May 2013, http://www.env-health.org/resources/letters/article/joint-ngo-letter-to-president )
3. The Berlaymont Declaration is available at www.env-health.org/resources/press.../heal-responds-to-berlaymont
4. Letter on EDCs to Commissioners Potočnik and Tajani from Swedish and Danish Ministers for the Environment, 30 October 2013, Letter and ChemSec press release at http://www.chemsec.org/news/ne...


I love to write poetry, although i know a lot of people arent very interested in my poems. they think they are different, but not in a good way. i came to this website to find someone like me, a friend who is like me.
This page was created in 1.4215 seconds.


Morgado, Nuno. 2018. 'The role of élites in geopolitical studies'. In: 5th International Multidisciplinary Scientific Conference on Social Sciences and Arts, SGEM 2018, Volume 5, Modern Science, Issue 1.1. Political Sciences, Law, Finance, International Relations, 765-772. Sofia: SGEM International Multidisciplinary Scientific Conference on Social Sciences & Arts.
Morgado, Nuno. 'Analysis of Brazil's geopolitical design: prioritizing the South American regional integration maneuver.' Journal of Territorial and Maritime Studies vol. 5, no 1 (Winter/Spring 2018): 5–22.
Morgado, Nuno. 'Assessing the role of Brazil in the New World Order: a geopolitical study of Meridionalism and Neo-Eurasianism,' Anuario Latinoamericano vol. 4 (2017): 163-186.
Morgado, Nuno. 'Federation vs Balkanization in Central Europe – Geohistorical approach to élites' perceptions at World War I period.' Central European Political Science Review vol. 17, no. 65 (Fall 2016): 220-241.
Morgado, Nuno. 2016. 'Continentalization versus Maritimization – the debate within Brazilian School of Geopolitics and its political consequences.' In: 3rd International Multidisciplinary Scientific Conference on Social Sciences & Arts, SGEM 2016, Book 2 Political Sciences, Law, Finance, Economics & Tourism, Volume I Political Science, 89-96. Sofia: SGEM International Multidisciplinary Scientific Conference on Social Sciences & Arts.
Morgado, Nuno. 2016. 'Geopolitical Design and the 'Sense of Space' – methodological cores in Geopolitical Studies.' In: 3rd International Multidisciplinary Scientific Conference on Social Sciences & Arts, SGEM 2016, Book 2 Political Sciences, Law, Finance, Economics & Tourism, Volume I Political Science, 169-174. Sofia: SGEM International Multidisciplinary Scientific Conference on Social Sciences & Arts.
Morgado, Nuno. 'Новое открытие теллурократической геополитики в Центральной Европе (К постановке проблемы научного подхода к немецкой школе геополитики)' ['Rediscovering Tellurocratic Geopolitics in Central Europe. Pinpointing problems: a scientific approach to German School of Geopolitics.'] Political Science (INION – Russian Academy of Sciences) no. 2 (Summer-Autumn 2014): 204-221.


International Society for Technology in Educa, 9781564843074, 197pp.
In Media Literacy in the K-12 Classroom, Frank W. Baker will show you how you can bring media literacy into your classroom--whether that classroom is English language arts, social studies, health, or any other subject--and teach students skills that enable them to become knowledgeable media consumers and producers. With the many examples, advice, and classroom activities he provides, you can immediately make this important topic a part of everyday education.


i got it thnx a lottttttttttt.i really appreciate the kindness of u guys for being so helping.
WinCC flexible 2005 SP1 is online.
Thank you Sania for the great files.
I have downloaded the 3 CD sets of files and "un-Rar" each group to a folder, so I now have 3 folders: WinCC_Flex05sp1cd1 / cd2 / cd3.
Do I need to make an ISO & use Daemon to proceed or what is best method to install.
Do I need a joke or crack file to proceed.
I think there is too much information at the link for me !
I tried to find "joke" or registry hack.
I put A9XEP111.EKB + Long key in my AX NF ZZ of Protool but no joy.
I keep getting failure at 2nd time when asked for CD2.
To clarify-- 1st time when asked for CD2 the install proceeds OK, but later in the install it asks for CD2 again but fails.
best regards for great people on great www site.
I think I might have had problem because my 3 CD directory is in my E disk.
Next week I might uninstall!!! and try and detect a fault on some install variations.
Off to watch football all weekend as wife1 has been upgraded to wedding guest V5.9 in a distant machine that is not on my LAN.
The Hotfix 5 for WinCC flexible 2005 SP1 is available.
Hotfix 6 for WinCC flexible 2005 SP1 is now available.
Today i have the same problem installing WinCC Flexible 2005 Sp1 with 3 CDs. I burned three separated CDs but always there is a problem with the knwoledge of the next CD.
I tried since my HD joining all files in the same folder but the setup continue asking for other CD.
Have i to modify setup Configuration Settings text file?
What other thing a have to do?
Even when I put everything together I get the question to put in CD 2.
So I have a problem. Also when I did put everything seperate it asked for CD 2 or 3 and the installation was stopped anyway.
Dear Link, can you reupload the WinCC Flex 2005 with SP1 - full version 3 CD, please? Thanks!


After announcing its plans to open up several pop-up shops in New York City to help celebrate New York Fashion Week, NikeLab unveils a highly anticipated collaboration that sees the Swoosh partner up again with coveted fashion designer Riccardo Tisci.
Having previously worked with the fashion designer on several Nike silhouettes, this year's collaboration with Tisci will focus on the classic Swoosh sneaker, the Dunk Lux Chukka. Inspired by the Dunk High shoe, Tisci creates a mid version of the Dunk Lux Chukka in both black/white and red/white colorways, that are inspired by Tisci's interest in the aesthetics of skate culture and Retro 1980s basketball.
The next series of silhouettes between RT and NikeLab will feature a big, bold Swoosh on the side panel and an enlarged foxing and eyestay. The shoe also comes equipped with a full-grain leather upper for durability, drop-in Lunarlon insole for ultra-soft cushioning and memory foam in the quilted leather collar.
The NikeLab Dunk Lux Chukka x RT will be available starting, Fri., Feb. 10, at NikeLab flagship stores in Bergdorf Goodman, NikeLab 21M, Dover Street Market New York, Kith BK and Concepts NYC. The shoes will be available globally starting, Thurs., Feb. 23 at NikeLab retailers and on nike.com/nikelab.


text:
Two Pianos | Bach and Shostakovich
Acclaimed piano duo Pavel Kolesnikov and Samson Tsoy interweave music by Bach and Shostakovich, in the first of two Aldeburgh Festival performances created especially for the historic Jubilee Hall.
In the first recital on Monday morning the preludes and fugues by Bach and Shostakovich are played on two pianos, in the form of a conversation, sometimes keeping to the original pairings, sometimes answering a prelude of one composer with a fugue of the other, and sometimes passing the polyphonic thread between the pianists. Shostakovich wrote his preludes and fugues directly inspired by a performance of Bach's, so this dialogue will be particularly striking. Performed in the round, audiences can experience the music up close in this historic setting.
The Jubilee Hall was the setting for the first Aldeburgh Festival in 1948. The modest seaside hall remains a very special place to hear music, and this year has inspired a diptych of programmes dedicated to poignant and highly personal dialogues with Bach.
Pavel Kolesnikov piano
Samson Tsoy piano
About Jubilee Hall
Nestling in the heart of the seaside town of Aldeburgh in Suffolk sits the historic and much-loved Jubilee Hall. Built in 1887 by local businessman Newson Garrett to celebrate Queen Victoria's Golden Jubilee, the hall was intended for "concerts and dramatic entertainments provided by well-known artistes, dances for the little people on wet afternoons and for 'the grown-ups' in the evenings". The Jubilee Hall gained unexpected fame in 1948 when local residents Benjamin Britten and Peter Pears chose it as a venue for their Festival of Music and the Arts. In 1960 it hosted the first ever performance of Britten's A Midsummer Night's Dream, and since then many notable opera premières have taken place there, including Britten's The Little Sweep, William Walton's The Bear, and Harrison Birtwistle's Punch and Judy. Although the main venue of the Aldeburgh Festival has moved to Snape Maltings, many of the Festival events continue to take place in the Jubilee Hall, which still holds a special place in the hearts of local audiences.
Quietly electrifying intimacy
The Guardian, 2020, on a Kolesnikov and Tsoy duet
Pavel Kolesnikov, pianist
Aldeburgh Festival Featured Musician
For a quick, no-frills way to book multiple events online, try our QuickBook booking system.
Find out how to get here and around during the Aldeburgh Festival.
A year of exceptional music for less...
Rewards Offer
11:00am Book Now
Monday 12 June | 11:00am
Aldeburgh Jubilee Hall, Crabbe St, Aldeburgh IP15 5BN
£15, £20 Under 30s half price
Bach on Two Pianos
In the intimacy of Aldeburgh's Jubilee Hall, virtuosic duo Pavel Kolesnikov and Samson Tsoy play music by Bach in Kurtág's enigmatic arrangements for four hands.
Aldeburgh Jubilee Hall
Saturday 17 June | 11:00am
Sinfonia of London | Scottish Ballad
John Wilson's hand-picked "super orchestra" unites with virtuosic piano duo Pavel Kolesnikov and Samson Tsoy for this rare opportunity to hear Britten's Scottish Ballad. Also including British orchestral favourites by Delius and Walton, plus Elgar's radiant Symphony No.2.
Sunday 18 June | 4:00pm
In the twilight at Blythburgh Church, pianists Pavel Kolesnikov and Samson Tsoy play an atmospheric programme inspired by the unique location and its cherished sunsets, including Rachmaninoff, Schubert and the world premiere of a new commission by Leonid Desyatnikov.
Blythburgh Church
Thursday 22 June | 8:30pm


text:
A to Z of comedians | How to put your CV on this website | who are we? | contact us | How to book comedians
If you are interested in booking or hiring any of the comedians that are featured on this website please email me at mullaney3@blueyonder.co.uk and I will be happy to pass on your enquiry.
Becky Brunning
Becky Brunning: is a stand up comedian, writer and performer.
She trained in physical theatre and clowning at the London International School of Performing Arts.
Becky won Audio Go's national competition - Stand up and Get Heard (2013) and the Rose and Crown New Act Award (2014).
She was also finalist at the Funny Women Awards (2013) and the Bath New Act of the Year (2014).
Her critically acclaimed character solo show, "The Olympuc Gene" premiered at Edinburgh Festival in 2010. She subsequently did a UK tour which included a guest appearance at BBC Sports Personality of the Year.
A 28 minute mockumentary followed called "The Olympic Gene: Going for Silver" featuring a host of British Olympians including gymnastic silver medallist and 'Strictly Come Dancing' winner – Louis Smith.
As as well as being brilliant solo stand up comedian Becky is also is also half of comic duo "Brunning & Markwick" who featured on BBC Speech Bubble. Their first show "Six Steps to Joy" premiered at Edinburgh Festival 2014. She also performs regularly for and is a founding member of the award-winning sketch collective "Kaylosia".
"Becky came out with one of my favourite lines of the year" - Adam Bloom
"Her comedy insinuates itself, forcing its way inexorably through the cracks in her audience's defences and flourishing there. Broadway Baby
"Becky is an absolute delight - whimsical, original routines with razor sharp writing, we'd have her back for sure!"- Comedy Combo
"Funny Women semi finals were a blast. Too hard to judge: but I had to. Becky Brunning is THE one to watch. Also listen to" - Elise Bramitch
SIX STEPS TO JOY
"This is a decidedly silly hour of comedy" BROADWAY BABY
OLYMPIC GENE
"Touching and heart-warming and funny all at the same time. A Real Talent"
John Inverdale, BBC.
"This show is one of those lovely, unexpected, comic gems…There are not many comedy shows that can make you cry at the same time as making you laugh – but this one did just that" The Scotsman


text:
The Nightingales
The Nightingales Book Tickets
The Bodega, Nottingham
Saturday 7th May 2022 | Doors at 19:00, Expected finish time: 22:00
The Bodega
23 Pelham Street
NG1 2ED
Universally regarded by locals and students alike as one of the best places to hang out, party and listen to live music in Nottingham - the Bodega is a must visit venue that has been at the very forefront of the midlands music scene over the past two decades. With a multitude of awards under it's belt including Best Medium Bar at the Best Bar None awards 2011, the Bodega holds its own as a great all rounder whilst having cemented itself a reputation for bringing world class stadium and festival-headlining talent to audiences before they made it big. The Bodega also won "Best Small Bar" (Judges vote) at 2013 and 2014 Best Bar None Awards.
Info Line: 0115 9505078
Bar open from 4pm Monday to Friday.
2pm on Saturday.
Closed on Sunday.
Concerts: Shows usually begin at 7pm and finish at 10pm unless otherwise stated.
Disabled Info: Please contact the venue directly for more information on 0115 950 5078 or online at http://www.bodeganottingham.com/venue-info/123-disability-access-information
2022-05-07 19:00:00 2022-05-07 22:00:00 Europe/London The Nightingales The Nightingales at The Bodega - Event added by alt. tickets http://www.alttickets.com The Bodega, Nottingham, alt. tickets customerenquiries@alttickets.com


One of our valued Fortune 500 financial service industry clients in NYC is in need of a freelance Communications Consultant/Writer. This is onsite, 40 hours a week, pay rate: $40hr.
•	Partner with all functional areas and the Group's business partners, including Human Resources, Training, Ethics and Communications, to develop, write, edit and publish content on the Group's dedicated intranet site. Identify opportunities for improvements and ongoing enhancements to the site.


text:
Q: Android EpoxyRecyclerView - switching orientation I am trying to build the following layout structure with Epoxy:

First three layouts are from EpoxyAModel.
The fourth one is from the EpoxyBModel.
This is my buildModels function:
override fun buildModels() {

    aModels.forEach { //this happens 3 times
        modelA {
            id("someID")
            (...)

        }
    }

    modelB {
        id("someID2")
        (...)
    }

}

With this set up I am getting the following result:

This is understandable, since the documentation of EpoxyRecyclerView says:

If the RecyclerView is set to match_parent size then the scrolling
  orientation is set to vertical and setHasFixedSize is set to true.
If the height is set to wrap_content then the scrolling orientation is
  set to horizontal, and setClipToPadding is set to false for carousel
  usage.

My question is: is there a possibility of getting the desired effect or do I have to define another EpoxyRecyclerView and controller?
Thanks in advance.

A: Okay, I figured it out!
Firstly, we need to assign a GridLayoutManager to the EpoxyRecyclerView:
recyclerView.layoutManager = GridLayoutManager(context, 3)

Then, inside the EpoxyBModel we need to override the getSpanSize method to tell the layout manager that this element is as big as a whole row of items:
override fun getSpanSize(totalSpanCount: Int, position: Int, itemCount: Int): Int = 3

redpajama_set_name: RedPajamaStackExchange


GabrielCute . 02REAListicWILDX. SweetDanik. Nellyy.
ErinNoelleUSANellyyMichelleJessCrazyCoupleXD .CuteTaliaForUMabrukayMojoxlxlanegrisx .salmahoneySensualAlynnaWhiteSmilesA1hornygayCumX .JastinMilesExtremePumpedbrandonandgirlscRaZygirLs123 .CuteTaliaForUAleftinaHotCindyDazzlingMelanieLexxx .AnnieBeautyErinNoelleUSAOffeliaMelanieLexxx .JoyofLovedanielpsiExtremePumpedErinNoelleUSA .EmmieKissescouplestarhotlanegrisxdanielpsi .EmaSophielanegrisxKilianDiggerSinNyeX .MarianaCoxRahifaPlayfulEliseAOI .HotLivSensualAlynnaMelanieLexxxAOI .
KrisAmazingSuriaHotHotNaughtyGirlsNikoleI .brandonandgirlsMattSantosKELLIEMACKJesyMorgan .AbrilGarciadanielpsiPlayfulEliseVeraCaruso .JoyofLovePrincessChloe69EmaSophieMelisaCrystal .couplestarhotbrandonandgirlstwoANGELofCOCKSSailynandedwin .salmahoneyEvaLynxMichelleJessPlayfulElise .JennaxDiamondLailaSaffireKilianDiggerFireLadyXO .CrazyCoupleXDCrazyCoupleXDSexyL0velyJenniNaughtyARIES .SexyL0velyJenniLannyFranniErikaDelightXdanielpsi .PrincessChloe69EvaLynxMichelleJessbrandonandgirls .MichelleJessHotLivA1hornygayCumXJoyofLove .