November is a great month for big rebates and incentives. This is the time of year when manufacturers tend to raise incentives to clear out remaining vehicles before the end of the year.
TrueCar has the details on these top deals. For instance, there's great lease deals being offered right now on the 2015 Acura TLX, 2015 Honda CR-V and 2015 Lexus IS 250. Or if you're looking to purchase, there's also deals on these same vehicles, with financing as low as 0% and customer cash-back of up to $4,000.
As always, if you want the very best deal possible use TrueCar No Haggle and Edmunds Price Promise.


text:
package org.apache.cassandra.cql3;

import java.nio.ByteBuffer;
import java.util.*;

import com.google.common.primitives.Ints;

import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap;
import com.googlecode.concurrentlinkedhashmap.EntryWeigher;
import org.antlr.runtime.*;
import org.github.jamm.MemoryMeter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.apache.cassandra.cql3.statements.*;
import org.apache.cassandra.transport.messages.ResultMessage;
import org.apache.cassandra.db.*;
import org.apache.cassandra.exceptions.*;
import org.apache.cassandra.service.ClientState;
import org.apache.cassandra.service.QueryState;
import org.apache.cassandra.tracing.Tracing;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.MD5Digest;
import org.apache.cassandra.utils.SemanticVersion;

public class QueryProcessor
{
    public static final SemanticVersion CQL_VERSION = new SemanticVersion("3.0.5");

    private static final Logger logger = LoggerFactory.getLogger(QueryProcessor.class);
    private static final MemoryMeter meter = new MemoryMeter();
    private static final long MAX_CACHE_PREPARED_MEMORY = Runtime.getRuntime().maxMemory() / 256;

    private static EntryWeigher<MD5Digest, CQLStatement> cqlMemoryUsageWeigher = new EntryWeigher<MD5Digest, CQLStatement>()
    {
        @Override
        public int weightOf(MD5Digest key, CQLStatement value)
        {
            return Ints.checkedCast(meter.measureDeep(key) + meter.measureDeep(value));
        }
    };

    private static final ConcurrentLinkedHashMap<MD5Digest, CQLStatement> preparedStatements = new ConcurrentLinkedHashMap.Builder<MD5Digest, CQLStatement>()
                                                                                .maximumWeightedCapacity(MAX_CACHE_PREPARED_MEMORY)
                                                                                .weigher(cqlMemoryUsageWeigher)
                                                                                .build();

    private static EntryWeigher<Integer, CQLStatement> thriftMemoryUsageWeigher = new EntryWeigher<Integer, CQLStatement>()
    {
        @Override
        public int weightOf(Integer key, CQLStatement value)
        {
            return Ints.checkedCast(meter.measureDeep(key) + meter.measureDeep(value));
        }
    };

    private static final ConcurrentLinkedHashMap<Integer, CQLStatement> thriftPreparedStatements = new ConcurrentLinkedHashMap.Builder<Integer, CQLStatement>()
                                                                                .maximumWeightedCapacity(MAX_CACHE_PREPARED_MEMORY)
                                                                                .weigher(thriftMemoryUsageWeigher)
                                                                                .build();

    public static CQLStatement getPrepared(MD5Digest id)
    {
        return preparedStatements.get(id);
    }

    public static CQLStatement getPrepared(Integer id)
    {
        return thriftPreparedStatements.get(id);
    }

    public static void validateKey(ByteBuffer key) throws InvalidRequestException
    {
        if (key == null || key.remaining() == 0)
        {
            throw new InvalidRequestException("Key may not be empty");
        }

        // check that key can be handled by FBUtilities.writeShortByteArray
        if (key.remaining() > FBUtilities.MAX_UNSIGNED_SHORT)
        {
            throw new InvalidRequestException("Key length of " + key.remaining() +
                                              " is longer than maximum of " + FBUtilities.MAX_UNSIGNED_SHORT);
        }
    }

    public static void validateColumnNames(Iterable<ByteBuffer> columnNames) throws InvalidRequestException
    {
        for (ByteBuffer name : columnNames)
            validateColumnName(name);
    }

    public static void validateColumnName(ByteBuffer name) throws InvalidRequestException
    {
        if (name.remaining() > IColumn.MAX_NAME_LENGTH)
            throw new InvalidRequestException(String.format("The sum of all clustering columns is too long (%s > %s)",
                                                            name.remaining(),
                                                            IColumn.MAX_NAME_LENGTH));

        if (name.remaining() == 0)
            throw new InvalidRequestException("Invalid empty value for clustering column of COMPACT TABLE");
    }

    private static ResultMessage processStatement(CQLStatement statement, ConsistencyLevel cl, QueryState queryState, List<ByteBuffer> variables)
    throws RequestExecutionException, RequestValidationException
    {
        logger.trace("Process {} @CL.{}", statement, cl);
        ClientState clientState = queryState.getClientState();
        statement.validate(clientState);
        statement.checkAccess(clientState);
        ResultMessage result = statement.execute(cl, queryState, variables);
        return result == null ? new ResultMessage.Void() : result;
    }

    public static ResultMessage process(String queryString, ConsistencyLevel cl, QueryState queryState)
    throws RequestExecutionException, RequestValidationException
    {
        CQLStatement prepared = getStatement(queryString, queryState.getClientState()).statement;
        if (prepared.getBoundsTerms() > 0)
            throw new InvalidRequestException("Cannot execute query with bind variables");
        return processStatement(prepared, cl, queryState, Collections.<ByteBuffer>emptyList());
    }

    public static UntypedResultSet process(String query, ConsistencyLevel cl) throws RequestExecutionException
    {
        try
        {
            QueryState state = new QueryState(new ClientState(true));
            ResultMessage result = process(query, cl, state);
            if (result instanceof ResultMessage.Rows)
                return new UntypedResultSet(((ResultMessage.Rows)result).result);
            else
                return null;
        }
        catch (RequestValidationException e)
        {
            throw new RuntimeException(e);
        }
    }

    public static UntypedResultSet processInternal(String query)
    {
        try
        {
            ClientState state = new ClientState(true);
            QueryState qState = new QueryState(state);
            state.setKeyspace(Table.SYSTEM_KS);
            CQLStatement statement = getStatement(query, state).statement;
            statement.validate(state);
            ResultMessage result = statement.executeInternal(qState);
            if (result instanceof ResultMessage.Rows)
                return new UntypedResultSet(((ResultMessage.Rows)result).result);
            else
                return null;
        }
        catch (RequestExecutionException e)
        {
            throw new RuntimeException(e);
        }
        catch (RequestValidationException e)
        {
            throw new AssertionError(e);
        }
    }

    public static UntypedResultSet resultify(String query, Row row)
    {
        try
        {
            SelectStatement ss = (SelectStatement) getStatement(query, null).statement;
            ResultSet cqlRows = ss.process(Collections.singletonList(row));
            return new UntypedResultSet(cqlRows);
        }
        catch (RequestValidationException e)
        {
            throw new AssertionError(e);
        }
    }

    public static ResultMessage.Prepared prepare(String queryString, ClientState clientState, boolean forThrift)
    throws RequestValidationException
    {
        ParsedStatement.Prepared prepared = getStatement(queryString, clientState);
        ResultMessage.Prepared msg = storePreparedStatement(queryString, clientState.getRawKeyspace(), prepared, forThrift);

        assert prepared.statement.getBoundsTerms() == prepared.boundNames.size();
        return msg;
    }

    private static ResultMessage.Prepared storePreparedStatement(String queryString, String keyspace, ParsedStatement.Prepared prepared, boolean forThrift)
    throws InvalidRequestException
    {
        // Concatenate the current keyspace so we don't mix prepared statements between keyspace (#5352).
        // (if the keyspace is null, queryString has to have a fully-qualified keyspace so it's fine.
        String toHash = keyspace == null ? queryString : keyspace + queryString;
        long statementSize = meter.measureDeep(prepared.statement);
        // don't execute the statement if it's bigger than the allowed threshold
        if (statementSize > MAX_CACHE_PREPARED_MEMORY)
            throw new InvalidRequestException(String.format("Prepared statement of size %d bytes is larger than allowed maximum of %d bytes.",
                                                            statementSize,
                                                            MAX_CACHE_PREPARED_MEMORY));

        if (forThrift)
        {
            int statementId = toHash.hashCode();
            thriftPreparedStatements.put(statementId, prepared.statement);
            logger.trace(String.format("Stored prepared statement #%d with %d bind markers",
                                       statementId,
                                       prepared.statement.getBoundsTerms()));
            return ResultMessage.Prepared.forThrift(statementId, prepared.boundNames);
        }
        else
        {
            MD5Digest statementId = MD5Digest.compute(toHash);
            preparedStatements.put(statementId, prepared.statement);
            logger.trace(String.format("Stored prepared statement %s with %d bind markers",
                         statementId,
                         prepared.statement.getBoundsTerms()));
            return new ResultMessage.Prepared(statementId, prepared.boundNames);
        }
    }

    public static ResultMessage processPrepared(CQLStatement statement, ConsistencyLevel cl, QueryState queryState, List<ByteBuffer> variables)
    throws RequestExecutionException, RequestValidationException
    {
        // Check to see if there are any bound variables to verify
        if (!(variables.isEmpty() && (statement.getBoundsTerms() == 0)))
        {
            if (variables.size() != statement.getBoundsTerms())
                throw new InvalidRequestException(String.format("there were %d markers(?) in CQL but %d bound variables",
                                                                statement.getBoundsTerms(),
                                                                variables.size()));

            // at this point there is a match in count between markers and variables that is non-zero

            if (logger.isTraceEnabled())
                for (int i = 0; i < variables.size(); i++)
                    logger.trace("[{}] '{}'", i+1, variables.get(i));
        }

        return processStatement(statement, cl, queryState, variables);
    }

    private static ParsedStatement.Prepared getStatement(String queryStr, ClientState clientState)
    throws RequestValidationException
    {
        Tracing.trace("Parsing {}", queryStr);
        ParsedStatement statement = parseStatement(queryStr);

        // Set keyspace for statement that require login
        if (statement instanceof CFStatement)
            ((CFStatement)statement).prepareKeyspace(clientState);

        Tracing.trace("Preparing statement");
        return statement.prepare();
    }

    public static ParsedStatement parseStatement(String queryStr) throws SyntaxException
    {
        try
        {
            // Lexer and parser
            CharStream stream = new ANTLRStringStream(queryStr);
            CqlLexer lexer = new CqlLexer(stream);
            TokenStream tokenStream = new CommonTokenStream(lexer);
            CqlParser parser = new CqlParser(tokenStream);

            // Parse the query string to a statement instance
            ParsedStatement statement = parser.query();

            // The lexer and parser queue up any errors they may have encountered
            // along the way, if necessary, we turn them into exceptions here.
            lexer.throwLastRecognitionError();
            parser.throwLastRecognitionError();

            return statement;
        }
        catch (RuntimeException re)
        {
            throw new SyntaxException(String.format("Failed parsing statement: [%s] reason: %s %s",
                                                    queryStr,
                                                    re.getClass().getSimpleName(),
                                                    re.getMessage()));
        }
        catch (RecognitionException e)
        {
            throw new SyntaxException("Invalid or malformed CQL query string: " + e.getMessage());
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
Johnson: From basement to 'Big' -- a Pastor's one-year chart-topping musical journey
Pastor Mike Mclure Jr.
By Roy S. Johnson | rjohnson@al.com
I believe that it's my season.
I believe that it's my time.
I can feel it…
Anticipating God's getting ready to move.
God is working a miracle just for me.
And it's gonna be…
He never intended it to be big. Let alone Big.
Music is therapy for Rev. Mike McClure Jr., Rock City Church's 36-year-old pastor. Has been since 2014—since a counselor, concerned the young preacher from Birmingham's west side was constantly besieged with other people's problems, asked him: How do you detox?
"You're a trashcan, people keep dumping stuff on you," the counselor said. "How do you rinse?"
With music. It had been a natural joy since McClure's childhood, when mom surrounded the toddler with books in their Ensley home so he could "play drums" with the white cardboard he ripped from coat hangers while she played gospel music, usually artist John P. Kee.
McClure's father, Mike McClure Sr., served as pastor of Revelation Church Ministries and, for a time, was also a Birmingham police officer. His salve from pressures of the duel vocations was Fred Hammond, another popular gospel artist.
McClure Jr. was sitting in the car with his father one day as both listened to Hammond. "Dad was going through a rough season with a lot of pressure on him," he says. "He was a police officer and a pastor. He's seeing death and wants to save people."
The song, the son recalls, was "All Things are Working":
Falling apart and tearing at the seams
Tribulation lends a hand and squeezes all your hopes, your dreams
You say you retreat, you say you just can't win
Before you let your circumstance tell you how the story ends
His word says you can stand
He'll cover you with His grace
Everything you need is in your hand
So lift up your head and say
All things are working for me even things I can't see
Your ways are so beyond me
But You said that You would let it be for my good
So I'll rest and just believe
"That day I just kinda fell in love with the power music has," McClure, Jr. says.
The power to heal. The power to soothe. The power to detox. To rinse.
McClure grew into a talented self-taught singer and musician—influenced by gospel artists Kirk Franklin, James Fortune, and Tye Tribbett, as well as secular artists User and Eric Bellinger. As well as Ricky Samuel, praise and worship leader at his father's church. At times, Samuel allowed McClure to lead songs with him.
"He was the one influence I was able to touch," he says. "All I wanted to be was him."
McClure's gifts were pretty much confined to the church, his father's or his own—McClure founded Rock City exactly a decade ago. Or home, where he created a small recording room, saving to purchase one piece of equipment at a time.
"I just learned how to record myself," he says. "I would just go in my room and start recording, writing songs and getting music here and there."
Big began small exactly a year ago yesterday when during a service McClure, backed by Rock City's praise team, began waving his arms: "Next time your're getting down on yourself, I just want you to do this. Cause your bank account may not look like it. Your circle may not believe it. Folks may not believe it. But it's gonna be big!"
God gave me a song during worship that has blessed so many! 2020 for you is going to be B!G #pastormikejr #pmjbeonit
Posted by Mike McClure Jr. on Wednesday, December 11, 2019
He just didn't know how big.
I'm running into my destiny
Running into my promise.
Big wasn't even fully yet a song, just a seed planted among the McClure's therapeutic recordings at home. A seed nurtured by church leaders and producers Rod Turner and Curtiss Glenn.
"Ya'll may want to go record Big," he said. "Make it do something like, I Believe…." McClure hashed out some lyrics on iPhone voice notes.
I'm running into destiny, shouting into my promise.
One evening last January McClure—"PMJ" to Rock City members—invited nationally acclaimed music promoter Kerry Douglas to his home for dinner. (Douglas, a Houston native, had—watch this—met and married a woman who was a member of Rock City.)
"I want you to hear something," McClure said.
He played Big, saying he wanted to drop it at Rock City on the last Sunday in January. "So the church could hear it, that was it," McClure says. "At best, I was going to beg [610 WAGG Gospel on the Nightside host] Jay Bryant to play it locally."
The pastor's vision, it seems, wasn't very big. Certainly not as big as Douglas's.
"When he heard it," McClure recalls, "he looked me in my eyes and said: 'No, listen to me. This is a No. 1 song in America. It's the No. 1 song in the world. This may be the No. 1 album in the country. Your life may never be the same. What else do you have?'
"His vision," McClure adds, "was way bigger."
It's yours if you want it.
Anticipating.
God's getting ready to move.
Did McClure at least receive it at the time? "Nah," he says with a laugh. "I was like 'Cool,' and didn't think much of it."
The two men originally agreed McClure would drop four songs on an EP; Douglas later called and asked if the minister had enough for an album.
"I probably have forty-five or fifty songs recorded that nobody's ever heard. We just pulled four or five of them, added them to the album and the rest is history."
Though it almost wasn't—because McClure still didn't want it to be Big. Not the first single from the album to be released. He thought it should be I Got It.
You made a way, outta no way
You keep in blessing, every day….
That's why we give You all the glory
Can't nobody do me like you, Jesus
"Kerry said, 'No'," McClure recalls. "I said, 'No. Everybody will be saying 'I got It. It's the best one.'"
"Pastor Mike," Douglas said. "If I don't know anything else, I know radio. You have to be in the mood to hear I Got It. If you're a millionaire, who doesn't want more money? If you're poor, who doesn't want some money? Big speaks to everyone at once. If you trust me, go with Big, but it's your decision."
"I laid up and said, 'Okay God: Why would you put this person in my like who knows, and I don't listen?' I called him and said, 'Kerry I trust you.'"
I can feel it.
Say breakthroughs in the room.
In Jesus Name DOWNLOAD NOW! https://music.apple.com/us/album/big-single/1462437721
Posted by Mike McClure Jr. on Thursday, January 24, 2019
Big hit radio in the summer and received steady airplay. But get this: Outside of the initial spontaneous Big at Rock City (the video went viral), McClure never sang the finished song for an audience. That debut happened in June at New Birth Missionary Baptist Church in Atlanta, pastored by Rev. Jamaal Bryant, who invited McClure to perform Big.
New Birth is one of the largest Baptist churches on the East coast, and Bryant one of the most influential pastors. In the audience that day was national gospel artist Jonathan Nelson.
"I was terrified," McClure recalls with a laugh. The whole family was there—wife Jaquetta and their five children (four boys and a girl, the youngest).
"This was make or break," he says. "If it went horrible, I was not doing it again."
The performance was Big's "God moment."
"By the time I get done, the church is just… God moved," he says. "They couldn't stop singing it.'
Nelson looked at McClure and said: "This is incredible."
"It was through the roof. That was the moment I turned to my wife: 'I think we got something.'"
Something, yes, big.
God's gonna open the windows of heaven
Pour me out a blessing.
Won't have room to explain it.
Can't even try to explain it.
But it's gonna be …
"Live Free" dropped in September; a month later it was the No. 1-selling gospel album in America. "Big" is currently the fifth most-played gospel song in the country.
McClure is currently close to being nominated for nine Stellar Awards, which are elected by public voting.
Pastor hit No. 1 on billboard gospel album chart
The Rev. Mike McClure Jr., pastor of the Rock City Church based in Forestdale, topped the gospel album chart on Oct. 26.
"If I can thank anybody, it has to be my wife," he says. "She's the one person who can stop all this. If she doesn't hold down the house and kids and push and support me, I can't be pastor, artist, nothing. She's the glue that holds all this together."
Now, McClure's musical vision is…humongous. And it's about Birmingham.
"I love my city," he says. The album was mostly recorded in McClure's basement studio, the rest at Audiostate 55 in Birmingham. Everyone who appears on "Live Free" is from Birmingham, too. Featured artists include Ray to Great and Skoolie Escabar, prominent hip-hop rappers who grew up here, as well as Amanda Gentry, who sings on Freedom Chant, and Halo Wheeler.
Birmingham singer-songwriter pens Jennifer Lopez hit
Sebastian Kole co-wrote Jennifer Lopez's number one single "Goin' In" and hopes to jump start his own career in Los Angeles in September.
"I wanted the world to see Birmingham's special," McClure says. "I wanted the world to see God but also to see Birmingham's the best-kept secret in the world. I believe that."
McClure salutes numerous industry success stories with Birmingham roots: Snipe Young, who's produced songs on Chris Brown; Sabastian Kole, a singer who's also writing for numerous artists; and Ruben Studdard, "who had the whole world looking at 205," McClure says.
He's already attracted national talent to Birmingham. Two-time Grammy-nominated gospel artists James Fortune joined Rock City earlier this year as Creative Pastor. (Fortune's I Am is currently the most played single in the U.S.)
"Birmingham can sleep on you," he continues. "It's this mecca of talent the world has been stealing from. Folks come, get [our talent] then say, 'Look what's in New York!'. No, they came from Birmingham.
"I'm gonna do all I can to bring awareness to my city."
Now, McClure's vision, his next dream, is to produce an album comprising one part gospel artists, one part secular—all parts Birmingham.
"I have three dreams," McClure says. "One, I want my career to be incredible; two I want to release artists who step into their calling; three, one city one sound, an album with some of the brightest gospel and secular artists. Together. We do all we can to push that to the world so they can be heard."
And they can be big. Just like the song, and the vision McClure almost overlooked.
"I really believe Big is more than a song," he wrote once on Instagram. "It's prophetic declarations that will shift your mindset and cause you to expect more even when reality is showing you less."
Then there's this: "I feel like Big's gonna be that song that no matter how old I get," he says with a laugh, "some dude in the back's gonna yell: 'Do Big! BIG!'
"It's indicative of my life."
But it's gonna be…

redpajama_set_name: RedPajamaCommonCrawl


text:
package com.sgoldm.plugin.joinImages;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.util.Base64;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import java.io.ByteArrayOutputStream;

/**
 * Class that joins two images together using an Android Canvas and Bitmap.
 *
 * @author ocarty
 */
public class JoinImages extends CordovaPlugin {

    public static final String ACTION_JOIN_IMAGES_FROM_DATA = "joinImagesFromData";
    public static final String ACTION_RESIZE_IMAGE_FROM_DATA = "resizeImageFromData";
    public static final int MEGABYTES_MULTIPLIER = 1048576;
    public static final double SCALE_FACTOR = 0.8;
    public static final double DEFAULT_MB_LIMIT = 5.0;
    public static final int QUALITY = 90;
    public static final Bitmap.CompressFormat COMPRESS_FORMAT = Bitmap.CompressFormat.JPEG;

    /**
     * Method that connects the javascript code to the native android code.
     *
     * @param action          The action to execute.
     * @param args            The exec() arguments.
     * @param callbackContext The callback context used when calling back into JavaScript.
     * @return true if action can be successfully completed, false otherwise.
     * @throws JSONException if JSON args cannot be read.
     */
    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

        if (action.equals(ACTION_JOIN_IMAGES_FROM_DATA)) {
            String encodedImage = joinImagesFromData(args);
            callbackContext.success(encodedImage);
            return true;
        }
        else if (action.equals(ACTION_RESIZE_IMAGE_FROM_DATA)) {
            String encodedImage = resizeImageFromData(args);
            callbackContext.success(encodedImage);
            return true;

        }
        else {
            callbackContext.error("Invalid action");
            return false;
        }
    }

    /**
     * Joins the image from two data strings.
     *
     * @param args the first image, second image, and size limit
     * @return the encoded string as a Base64
     */
    private String joinImagesFromData(JSONArray args) {
        String firstImageDataString = args.optString(0, "");
        //String secondImageDataString = args.optString(1, "");
        double sizeLimitInBytes = args.optDouble(2, DEFAULT_MB_LIMIT) * MEGABYTES_MULTIPLIER;

        // get the images as bitmaps
        Bitmap bitmapFirstArg = getBitmapFromEncodedString(firstImageDataString);
        //Bitmap bitmapSecondArg = getBitmapFromEncodedString(secondImageDataString);

        // use the height of the taller image
        int height =300; //(bitmapFirstArg.getHeight() > bitmapSecondArg.getHeight()) ? bitmapFirstArg.getHeight():bitmapSecondArg.getHeight();
        // and combine the widths because they will be joined horizontally
        int width =300;// bitmapFirstArg.getWidth() + bitmapSecondArg.getWidth();

        // create a new bitmap of the joined images
        Bitmap bmOverlay = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8);
        Canvas canvas = new Canvas(bmOverlay);
		 Paint paint = new Paint();
            paint.setColor(Color.WHITE); // Text Color
            paint.setStrokeWidth(12); // Text Size
            paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER)); // Text Overlapping Pattern
        canvas.drawBitmap(bitmapFirstArg, 0, 0, paint);
        canvas.drawText("Your text", 30, 40, paint);
        // scale it down and encode it, return that string
        return scaleAndEncodeBitmap(bmOverlay, sizeLimitInBytes);
    }

    /**
     * Takes one image, resizes it with params and returns it as a base 64 string.
     *
     * @param args one image as a string and a size limit
     * @return the encoded string as a Base64
     */
    private String resizeImageFromData(JSONArray args) {

        String imageDataString = args.optString(0, "");
        double sizeLimitInBytes = args.optDouble(1, DEFAULT_MB_LIMIT) * MEGABYTES_MULTIPLIER;

        // get the image as bitmap
        Bitmap bitmapOfImage = getBitmapFromEncodedString(imageDataString);

        // scale it down and encode it, return that string
        return scaleAndEncodeBitmap(bitmapOfImage, sizeLimitInBytes);
    }

    /**
     * Method that scales down a bitmap and returns it as a base64 encoded string
     *
     * @param bitmap the bitmap passed in
     * @param sizeLimitInBytes the size limit in bytes
     * @return the scaled down bitmap as an encoded string
     */
    private String scaleAndEncodeBitmap(Bitmap bitmap, double sizeLimitInBytes) {
        // get the current size in bytes
        int sizeOfBitmapInBytes = bitmap.getRowBytes() * bitmap.getHeight();
        // create output stream
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        // while its outside of the size limit
        while(sizeOfBitmapInBytes > sizeLimitInBytes) {
            // scale it down and check the size again
            bitmap = getResizedBitmap(bitmap, (int) (bitmap.getHeight() * SCALE_FACTOR), (int) (bitmap.getWidth() * SCALE_FACTOR));
            sizeOfBitmapInBytes = bitmap.getRowBytes() * bitmap.getHeight();
        }
        // compress it and get byte array
        bitmap.compress(COMPRESS_FORMAT, QUALITY, stream);
        byte[] byteArray = stream.toByteArray();

        // encode it to base64 string, recycle the bitmap and return the string
        String encodedImageAsAString = Base64.encodeToString(byteArray, Base64.DEFAULT);
        bitmap.recycle();

        return encodedImageAsAString;

    }

    /**
     * Method that returns a resized bitmap based on the height and width passed in.
     *
     * @param bitmap the bitmap passed in
     * @param newHeight the new height that the bitmap should be scaled to
     * @param newWidth the new width that the bitmap should be scaled to
     * @return the scaled bitmap
     */
    private Bitmap getResizedBitmap(Bitmap bitmap, int newHeight, int newWidth) {
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;
        // create a matrix for the manipulation
        Matrix matrix = new Matrix();
        // resize the bit map
        matrix.postScale(scaleWidth, scaleHeight);
        // recreate the new Bitmap
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, false);
        return resizedBitmap;
    }

    /**
     * Method that returns a bitmap from a base64 string
     *
     * @param encodedString the encoded data passed in
     * @return bitmap Of image
     */
    private Bitmap getBitmapFromEncodedString(String encodedString) {
        byte[] decodedByteArray = Base64.decode(encodedString, Base64.DEFAULT);
        Bitmap bitmapOfImage = BitmapFactory.decodeByteArray(decodedByteArray, 0, decodedByteArray.length);
        return bitmapOfImage;
    }
}


text:
Pharmaceutical, Biotechnology and Chemical Inventions – World Protection and Exploitation
Have you been looking for that one, comprehensive publication that covers intellectual property and patent law issues in the pharmaceutical, biotechnology and chemical industries from around the world's key jurisdictions? Well, it's finally here – or will be in the next month or so when the Oxford University Press ("OUP") publishes its 2-volume, 2,536-page "Pharmaceutical, Biotechnology and Chemical Inventions – World Protection and Exploitation."
The publication, which has been a massive undertaking and in the works for a couple of years, is edited by Duncan Bucknell, the founder and CEO of Think IP Strategy, a global intellectual property strategy firm. Hyman, Phelps & McNamara, P.C.'s Robert A. Dormer and Kurt R. Karst contributed to the publication, providing the United States aspect on various product approval and patent and exclusivity issues. A list of all contributors is provided below. Quite a world class-group!
Here's a synopsis of the publication provided by OUP:
This book highlights the special issues arising in obtaining, commercialising, enforcing or attacking intellectual property rights (including protection of regulatory data) in the pharmaceutical, biotechnology and chemical industries across the world's key jurisdictions. It is unique in presenting topic matter horizontally by subject to facilitate comparison between country practices. The first two chapters give a general introduction to the differences between the jurisdictions and an overview of some of the key concepts in patent law. The remainder of the book is dedicated to a detailed analysis of the major legal issues arising in these areas of technology. Each component chapter has a comparative introduction, looking at the variances in the laws of different domains, followed by side-by-side analysis of the relevant regimes, including tables and flow-charts which summarise and explain the key legal concepts. The jurisdictions covered are the United States, Europe (UK, Germany, Netherlands, France and Italy), Japan, Canada, Australia, India and China.
OUP has kindly granted FDA Law Blog readers a 20% discount. To claim your discount, just click here (or call OUP at +44 (0) 1536 741727) and use the code "ALBUCK10." (Note: This offer is only available on orders placed directly with OUP and is not available through any other supplier.)
Pravin Anand, Anund and Anund, India
John Bateman, Kenyon & Kenyon, USA
Susan Beaubien, Moffat & Co, Macera & Jarzyna LLP, Canada
Theo Bodewig, Humboldt University, Germany (Consultant Editor)
Simon Cohen, Taylor Wessing, UK
Wayne Condon, Griffith Hack, Australia
Marina Couste, Howrey LLP, France
Robert A. Dormer, Hyman, Phelps & McNamara, P.C., United States
Atsushi Hakoda, Nakamura & Partners, Japan
Juany Huang, Panawell and Partners LLC, China
Reuben E. Jacob, R. G. C. Jenkins, UK
Fabrizio Jacobacci, Studio Legale Jacobacci & Associati, Italy
Kurt R. Karst, Hyman, Phelps & McNamara, P.C., United States
Klaus Kupka, Taylor Wessing, Germany
David C. Musker, R. G. C. Jenkins, UK
Cyra Nargolwalla, Cabinet Plasseraud, France
Nina Resinek, Taylor Wessing, Germany
Toshio Takizawa, Nakamura & Partners, Japan
Koichi Tsujii, Nakamura & Partners, Japan
Klaus Schweitzer, Plate Schweitzer Zounek, Patentanwaelte, Germany
Deborah Somerville, Kenyon & Kenyon, USA
Paul Steinhauser, Arnold Siedsma, Netherlands
Nigel Stoate, Taylor Wessing, UK
Rosie Stramandinoli, Griffith Hack, Australia
Otto Swens, Steinhauser Hoogenraad, Advocaten, The Netherlands
Andreas Walkenhorst, Tergau & Pohl Patentanwälte, Germany
William Yang Panawell & Partners LLC, China
Federico Zanardi Landi, Studio Legale Jacobacci & Associati, Italy
Categories: Drug Development | Hatch-Waxman | Miscellaneous | Prescription Drugs and Biologics


"Portrait of Justin Reyes by Christopher Hardgrove," one of the works in the "Souls Shot" exhibition.
The number of people whose lives have been shattered by gun violence is staggering. Telling just some of their stories is the goal of "Souls Shot: Portraits of Victims of Gun Violence." For this project, artists were paired with families or friends to create portraits illuminating those precious lives to encourage the viewer to focus on the individuals behind the statistics and understand the cost of gun violence.
The project, a joint venture of Heeding God's Call to End Gun Violence and the Presbyterian Church of Chestnut Hill, will culminate in a free exhibition opening Nov. 3 in Widener Hall at the church, 8855 Germantown Ave. An opening reception will be held from 6 to 9 p.m., with a 7:30 p.m. program including speakers State Sen. Art Haywood; Bryan Miller, executive director of Heeding God's Call; a participating artist; and a family member of a victim of gun violence.
"Souls Shot: Portraits of Victims of Gun Violence" will be on view throughout November during church office hours, 9 a.m.-4 p.m. Monday-Friday and noon- 4 p.m. Sunday.
The exhibition will be part of the Presbyterian Church of Chestnut Hill's annual Festival of Music and Arts Nov. 3-5. This year the entire festival will bring awareness to gun violence, victims of gun violence and its impact on our community. A reading of a new play, "26 Pebbles," about the shooting at Sandy Hook Elementary School, will take place at 8 p.m. Saturday, Nov. 4, in the church chapel. On Sunday, Nov. 5, a free choral concert featuring a world premiere piece titled "Unspoken Words," written by Pulitzer-winning composer Lewis Spratlan, will be held in the church sanctuary, starting at 4 p.m. For more details on the Festival of Music and Arts, visit www.chestnuthillpres.org.


With stunning design, the Heritage Flywheel Slicer is a premium quality fully manual slicer producing artisan results. Constructed from stainless steel and aluminium, featuring an alloy steel blade (100Cr6) perfectly balanced and chrome plated, the machines robust construction complements the striking red enamel finish.
The meat table and blade movements are fully co-ordinated and geared to the hand rotation of the flywheel such that one rotation of the flywheel produces multiple turns of the blade. Additionally, as the flywheel turns, the carriage proportionately moves the food being sliced towards the blade. A double sliding plate with a lockable hand grip securely holds the meat in place to ensure consistent shaving.
The machine has been designed with ease of cleaning in mind. The space between the blade and the head is easily accessible to enable regular cleaning. A quick release meat table makes removal easy.
The Heritage Flywheel Slicer is a truly beautiful machine to own and operate.


text:
The Mysterious Chefs Behind Cow By Bear Return with Another Pop-Up Dining Experience
Keri Bridgwater | July 29, 2019 | Food & Drink
After winding down the clandestine Cow By Bear dinner series last year, elusive Chef Bear, Osa Bear and protege Lil' Osito Bear—whose true identities remain a mystery—are back with a new rendition of their unique pop-up dining experience. Created in conjunction with a forthcoming cookbook of the same name and set to run for one year only, Food by Bear explores menu themes based on experiences from time spent overseas in countries including France, Italy, Argentina and South Africa. Operating out of several secret locations around town, the format remains unchanged (one table, 14 seats, five courses and fine wine pairings), but with limited eight-week runs per region, reservations should be made now to secure a spot at San Diego's most eclectic supper club. $195 per person
Photography by: Cow By Bear


rich scotti Thanks for the add - it's an honor to be here at the birth of your station!!!
Rich Scotti Thanks for adding Every Dog - you DAWG!
We like guitars. And strong songs with great hooks. Solid rhythms that move you and make you want to move. Did I mention that we like guitars?


Choose a well-draining location in full sun. Mandarins love loamy soils with a pH range of about 5.5 to 6.5. Dig a hole about 1½ times as wide and slightly deeper than the plant's rootball. how to get the power of water Choose a well-draining location in full sun. Mandarins love loamy soils with a pH range of about 5.5 to 6.5. Dig a hole about 1½ times as wide and slightly deeper than the plant's rootball.
Choose a well-draining location in full sun. Mandarins love loamy soils with a pH range of about 5.5 to 6.5. Dig a hole about 1½ times as wide and slightly deeper than the plant's rootball.


text:
Munkácsy Flóra, Feleky Miklósné, névváltozat: Munkácsi, eredeti nevén Gaidler Emília (Baja, 1836. április 29. – Budapest, 1906. október 1.) színésznő, a Nemzeti Színház második nemzedékének tagja.

Életpályája

Munkácsy Flóra 1836. április 29-én született Baján, Gaidler Pál és Mészáros Anna vándorszínészek gyermekeként. Családja, a wolffeldi Gaidler-család, Németországból költözött be; nagyapja mint osztrák alezredes Munkácson vonult nyugalomba és itt született Pál nevű fia, ki Munkácsy-Gaidler néven jelesebb vidéki színész volt.

Még csak tízéves volt, de már gyermekszerepeket játszott Aradon és Nagyváradon. 13—14 éves korában szép sikerrel játszott szende szerepeket. 1854 őszén a Nemzeti Színházban vendégszerepelt; nagy tetszés fogadta, de a színház egyelőre nem tudta tagjai sorába szerződtetni, csak fellépésenként kapott 8 forintot. Elébb kisebb szerepeket játszott, míg végül Szigligeti Cigányának Rózsi szerepében nagy sikert aratván, nagyobb szerepekhez is jutott.

1855-ben Bécsben tanult, onnan hazatérve a Nemzeti Színházhoz került. 1858-ban feleségül ment Feleky Miklós színészhez. 1882. november 24-én színészi pályájának huszonötéves fordulóját ünnepelte. 1901-ben nyugdíjba vonult, ez alkalomból a király a koronás arany érdemkereszttel tüntette ki. 1902. február 6-án lépett fel utoljára a Várszínházban. 1906. október 1-jén hunyt el Budapesten.

Felekynét mint a legszebb magyar színésznőt emlegetik. Elragadtatással szólnak gyönyörű termetéről, az egész lényén elömlő leányos szendeségről, mélytűzű, ragyogó fekete szeméről, szép, esengő hangjáról és keresetlen egyszerűségéről és természetességéről. Pályája kezdetén énekesszerepeket játszott, egyik legnagyobb sikere volt Rózsa Szigligeti Ede Cigány című színművében. Pályája későbbi folyamán tragikai szerepeket is játszott ugyan (Desdemona, Júlia, Ofélia, Melinda, Stuart Mária), de hiányzott játékából a tragikai erő, a szenvedélyes hév. Ereje inkább az érzelmes, mélyen megindító játékban volt, melyben összhangzatosan érvényesült egész lényének nőies bája igaz bensőségével. Különösen Feuillet drámáinak és a hatása alatt írt daraboknak egyik állandó alakját, a panasz nélkül, némán szenvedő ártatlan asszonyt játszotta kitűnően. Vígjátéki szerepekben is kiválóvá tette keresetlen egyszerűsége; közülük legemlékezetesebb Ilonja (Nőuralom). Idősebb korában a szende szerepkörről az anya-hősnők ábrázolására tért át s ebben is igaz hatással érvényesült bája és gyöngédsége. Diadalait szépségével és kitűnő beszédtechnikájával aratta.

Főbb szerepei
 Ophélia, Cordelia, Katalin (Shakespeare)
 Miller Lujza (Friedrich Schiller: Ármány és szerelem)
 Sorel Ágnes (Grutsch)
 Donna Diana (Moreto)
 Gauthier Margit (Dumas: Kaméliás hölgy)
 Dolores (Sardou: Haza)
 Martha (Sardou: A Benoiton család)
 Henriette (Barrière: A völgy lilioma)
 Örzse (Abonyi L.: A betyár kendője)
 Desvarennes-né (Ohnet: Serge Panine)
 Rózsi (Szigligeti Ede: A cigány)
 Bernickné (Henrik Ibsen: A társadalom támaszai)
 Margit (Feuillet: Egy szegény ifjú története)
 Hermance (Szerencse gyermeke)
 Adél (Báró és bankár)
 Mártha (Benoiton - család)
 Ayda (IV. László)
 Magda (A társaságból)
 Rutland grófnő (Essex gróf)

Képgaléria

Irodalom
 Pukánszkyné Kádár Jolán: A Nemzeti Színház százéves története (I., Budapest, 1940)

Források

 Felekyné Munkácsy Flóra
 Magyar Színművészeti Lexikon (1929-1931, szerk. Schöpflin Aladár)

Magyar színésznők

Bajaiak
1836-ban született személyek
1906-ban elhunyt személyek
Magyar gyerekszínészek
Családi nevüket magyarosított személyek

redpajama_set_name: RedPajamaWikipedia


text:
Q: How to use Python3.2 with Dreampie? [UBUNTU] I have a question.
I try to learn Python and of all programmer's tools I found Dreampie the most suitable. But, my dreampie always automatically sets Python 2.7. I found this topic and following the instructions, I changed both subp_main.py and subp_main.pyc (based on the first). Yet, it's still Python 2.7.
Telling truth, I suppose there should be some way to choose between the two versions, but I did not found anything in the Net or in program options. According to this topic writing "dreampie python3" inside the program should work, but dreampie inform me that the syntax is invalid (?).
[I quess the solution is very easy, but none of searchable things would help...]

A: You need to open a Terminal window (or Run dialog Alt+F2) and type in the command as follows and press Enter:
dreampie python3

It's not python syntax but shell syntax so you are running the dreampie application with python3 as argument.

redpajama_set_name: RedPajamaStackExchange


We recycle Timber and Wood based products form a large proportion of the waste collected by our Skip Hire Service and Waste Clearance Services and via direct delivery to our Transfer Station. We ensue that all re-usable timber and wood based products are processed and segregated through our in-house Transfer Station. We then export to various specialist re-processing companies.
The waste wood is recycled into products which include animal bedding, play areas, equestrian surfaces, panel board feedstock, filter beds and biomass wood chip.
The cardboard and paper products are then exported to specialist re-processing facilities for re-use.
We recycle all waste wood products, which we then stringently grade and clean where necessary to produce a wide range of over 20 sustainable products for uses such as animal bedding, all grades of biomass for heating and power, equestrian uses, landscaping etc. We can offer a full collection and delivery service if required – please contact us for further information regarding this service.


Second, you may be given a caution. These can be a simple caution, which on the face of it is a warning not to be naughty in future, or it can be a conditional caution. Conditions could include a requirement to pay for the cost of damage or compensation, etc. Either way, you should ALWAYS take legal advice from an experienced solicitor before accepting a police caution. Cautions may prevent you working in certain areas, such as with children or vulnerable adults and may prevent you entering some countries like Australia and the USA.
Third, the police can issue you with a fixed penalty notice. If you decide to accept the notice – and there's not usually a good reason to refuse to accept one – then you can decide whether to admit the offence or contest it and ask for a court date. Accepting the fixed penalty notice does not mean you accept you committed a crime.
Finally, the police may decide to take no further action. This means that they have not been able to find sufficient evidence to choose one of the other options and so the case is finished. If they receive further evidence in future the case can be resurrected.
How do they decide whether to charge?
First, the police or a CPS solicitor will consider the evidence obtained by the police and decide whether there is sufficient evidence to charge.
They should consider whether the evidence is admissible, reliable and credible. Experience makes me wonder how well versed in the law of evidence the decision makers are since they frequently seek to rely upon inadmissible evidence – in one case I'm handling at the moment they have failed to serve any admissible evidence whatsoever!
Once the CPS solicitor has identified the relevant evidence they should move on to consider whether there is a realistic prospect of conviction if the evidence were to be put before a jury or magistrate. If the answer is "no" then the decision should be to take no further action. If they answer is "yes" then the solicitor should move on to the public interest test.
Lord Shawcross was Attorney General in 1951 when he said, "[i]t has never been the rule in this country, I hope it never will be, that suspected criminal offences must automatically be the subject of prosecution." The point he is getting at is that just because somebody has committed a crime it does not mean that it is always in the public interest to prosecute them.
The Crown Prosecution Service takes the view that crimes should always be prosecuted unless there is a good reason not to. Good reasons typically mean some kind of infirmity or disability of the defendant, the fact that they are already serving a lengthy sentence and national security issues. In cases of mercy killings it is common for the CPS to decide that pursuing the relative who ended their loved one's life is not in the public interest.
Once the prosecutor has decided that there is sufficient evidence to charge and that it is in the public interest he or she will make a final decision on the outcome. If the offence is minor and the suspect has made a full confession then it is likely that the decision will be to caution. If the offence is more serious or there has not been a confession then the prosecutor will authorise the police to charge and bail (or hold in custody) the person to appear in court.
This process is called the Full Code Test and should be applied before any decision is made to charge a person with an offence or continue with a prosecution after one has begun.
How common is it for a caution to be offered where the police/CPS think they don't have enough evidence to get a conviction in court?
In the recent debate in the media about cautions being used for serious offences, one justification given was that a caution was better than nothing. My understanding, backed up by your description here, is that a caution shouldn't be used as an alternative to NFA but only as an alternative to a charge.
A caution should only be doled out where there is good evidence that the person is guilty of the offence - an important element of that is the suspect must confess to the crime to receive a caution.
In practice that doesn't always happen. A particular problem I've identified in the past year or two is suspects I've advised in the police station who put forward a defence in interview that accepts the act but denies the mental element of the crime. Police officers either don't always recognise the distinction or don't care because I've come across a a number who put forward a defence yet are cautioned after I've left the station without taking further advice from me.
So no, it should never be used as an alternative to an NFA.


Recently I was reading my local paper and spotted an add, recognized by the very small print saying it was an add, about a product called Prixelin. In the add they touted that this newly discovered "drug" miraculously helps reverse memory problems of dementia and that it is newly available by just calling a phone number and ordering your supply! A new discovery!
These adds infuriate me. They prey on people who have the diagnosis of dementia, but don't realize how drug testing works. Yes, experiencing the beginning signs of memory loss can be a scary thing, and these adds are directed at your fear. Most of the items that appear in these types of adds are not really considered drugs. They are classified as supplements. Since the explosion of cases of dementia in the baby boomer population have skyrocketed in the last 10-15 years, so have the sales of supplements touted as memory boosters. Supplements do not go through the same scrutiny and testing for efficacy, and side effects that drugs do. These claims are not supported by hard data!
The FDA is not authorized to review the supplements that are on the market for safety or for effectiveness before the supplements are released to market. There is no certification that the supplements actually do what their manufacturers claim, or whether they can do harm. Is there enough active ingredient in one brand vs. another? Just because the specific compound provided is taken also doesn't guarantee that it will be able to be absorbed by the gut of the human it is meant for. Many supplements we take are merely excreted and have no effect at all. They are better taken in a natural food source that is high in that particular compound.
Supplements are not supposed to be sold for the purpose of diagnosing, treating, preventing, or curing disease. The simple reason is that they are not put through rigorous testing and then approved by the FDA. And yet there are all these products on the market, like Prixelin, and Prevagen….another supplement touting to enhance memory made "from jellyfish", as if in the commercials that statement makes it safe or effective. The manufacturers make their claims, and there is no agency responsible for proving them right or wrong. It is up to the manufacturers to label their products responsibly, and not contain impurities, etc.
Before a new supplement ingredient comes to market, they are reviewed for safety only, and are not given the "approved" label by the FDA. If serious problems occur with one of the supplements one should 1) stop taking the product, 2) report the reaction to their personal physician, and 3) report the finding to the FDA through a Consumer Complaint Coordinator.
It is always a good idea to have any supplements you are taking reviewed by your family doctor and by any specialists you normally see before beginning your regimen. Some supplements can enhance or reduce the effectiveness of an approved drug you might already be taking for some malady. For example, some supplements reduce your clotting ability and if you neglected to tell your doctors, you might run into a severe problem in surgery controlling the bleeding. This can be life threatening. Just because you are taking a supplement does not mean it is a harmless product.
Drugs, however, go through an approval process and a review of the trials that is standardized and rigorous by 1) performance of the drug first in animals to discover how the drug works and whether it is safe, and does what is expected, 2) trials in humans to see if it is still safe and well tolerated (just because it passes the animal test does not mean it will have the same result in humans), 3) does it do what researchers expected it to do, and 4) at what dosage should it be given. The trials in humans must be double blind meaning that neither the person giving the "drug" or the patient receiving the drug knows if they got the real product or a placebo until after the trial is closed. That prevents any undue influence muddying the test results. Only after all that testing is performed and the drug is found to be effective and without severe side effects is the drug given FDA approval.
So when you see adds for compounds boasting all sorts of claims that seem too good to be true, and not associated with articles coming out of medical school universities where drug trials are performed, you should be circumspect about their claims. Not all supplements are bad, some have value if taken for the right purpose with the knowledge of your physician. But just because it's on TV or the web does not mean it really works. The same is true for medical devices…they also don't go through intense trials before they may be used on you! You must be your own best advocate and do your homework. Determine if the product being advertised is approved by the FDA or not. If it doesn't say that it has FDA approval, then it is probably a supplement. And because supplements are not highly regulated, buyer beware.
Instead, it is better to focus on your overall health by eating better (a Mediterranean diet with less prepared foods, less red meat, and lower fat content), getting good exercise several times a week, controlling blood pressure (and eating less salt), getting a good 8 hours or more of sleep each day, and exercising your brain as well as your body (puzzles, games, etc). You will find if you do these things, your overall health will be better and you will feel happier too!


Abanilla -:- Gabriel Esteve Ruiz will announce the festivities of Santa Cruz and Moros y Cristianos de Abanilla.
Gabriel Esteve, abanillero born in 1946, has been the person chosen by the City of Abanilla to proclaim the patron saint festivities of 2019. In the words of the Mayor of Abanilla, Ezequiel Alonso, "Gabriel Esteve fulfills the" requirements "that, to me Judgment is required to proclaim the festivities of our people, since it knows them perfectly as a fan and as a party festero, but above all he feels them ".
He has been a member of the board of the brotherhood of the Holy Cross and one of the main promoters of the festival of Moors and Christians.
In this last facet he stands out as the founder of the first association of Moors and Christians as well as "Calatrava", the first party of the Christian side.
The lieutenant of mayor and councilman of Celebrations, Jose Antonio Rocamora, has indicated that with the election of Gabriel, the City council continues betting on town hawkers who know and love the celebrations of Abanilla.
"Gabriel Esteve is one of those people who, without a desire for prominence, have always been that his people and his party have claimed him, a brother of the Holy Cross and a festero who, with his enormous selfless contribution, has helped to magnify the party."


From farm to door - it's a simple concept but one that so often gets over-complicated. However, Jason Crotty, owner of Farmer's Choice, is committed to achieving just that.
Jason's dedication to creating a smaller food chain comes from his own deep-rooted belief that buying locally sourced and reared food should be an option accessible to all.
"I think that creating a smaller food chain is the only real long-term solution for a sustainable food chain. It is simple and transparent – the farmer, us and then the customer" explains Jason.
Farmer's Choice was launched in 1984, to deliver food from the farm to people's doorsteps. Over the past 35 years the company has created a network of relationships which mean it now delivers not only quality local meat and vegetables but a wide range of other products including artisan beer, chutney, wine and more.
Spending a lot of time out on farms building relationships with local farmers and producers, Jason makes it his mission to hunt down and support only the very best produce from the area for his customers.
Just in time for Christmas, Farmer's Choice customers can now order Hampshire buffalo, local cured meats and award-winning Keyhaven lamb. The availability of these products has come about through the relationships and reputation that Jason has built.
Orders can be placed online or over the telephone. Your shopping is then boxed up by Farmer's Choice and delivered to your door anywhere in the UK. So as well as being an easy way to order your own fresh produce it is also a great way to send a food parcel to a loved one.
"We are really excited to now be the exclusive retailer of the much-loved Broughton Buffalo meat. We can't wait for our customers to experience their products. The same with the lamb from Lisa's Larder and Hampshire Salami Company meats. These new lines perfectly complement the delicious local larder already available from us", reflects Jason.
Visit www.farmerschoice.co.uk for more information and details of how to order.
1. Visit www.farmerschoice.co.uk or call 01489 583828.
2. Browse the meat, vegetables, condiments, deli, dairy and drinks products available and select your shopping choices.
3. When you have everything you want in your cart click on the checkout. As a new customer this is the point where you will sign up.
4. You can opt to pay as and when you shop. Or you may choose to make monthly payments which have the added benefit of money off rewards and discounts. When paying monthly you are not committed to shopping weekly or monthly, no box will be delivered unless you place an order.
5. Select your delivery date and time.
6. Receive your fresh local farm produce delivered to your door.
Farmer's Choice delivers delicious British free-range meat, fish and groceries straight to your door from local farmers.


Happiness = Vino tinto y tapas!
If there's one thing you absolutely, positively must do on a hen weekend in Barcelona, it's a massive tapas meal. You're in the home of patatas bravas! It would be forever rude not to get the whole hen gang together for a proper Spanish tapas meal and huge, ice cold jugs of sangria.
Great for meat eaters, seafood lovers, veggies and even gluten free girls - these scrumptious tidbits taste amazing any time of day.
Barcelona is our second home. We know the best tapas bars and bodegas in Barri Gotic, El Born, La Rambla, Barceloneta, Raval and Exiample. Avoid the expensive touristy restaurants and get the real deal. Amazing value for money, your tasty tapas meal will include classic dishes and seafood specials made using only the freshest catch of the day.
We'll reserve a table for your hen party at one of our favourite tapas restaurants. Take your seats and enjoy cold cava or spicy sangria, as the kitchen whips up your tapas platters.
Swoon over Spanish tortilla, pop perfect cubes of delightful Manchego cheese into your mouth, tuck into crispy fried calamari and bicker over who gets the last spicy potato!
A tapas meal is jut the thing to set the girls up for a big night out in Port Olimpic. Line tummies and still have plenty of room for Mojitos and Pornstar martinis.


text:
HODGES LIVING DREAM IN FAST LANE
Marty O'BrienDaily Press
Jefferson Hodges is living the dream.
His late father, former Langley Speedway general manager King Hodges, nurtured the dream by taking his son on weekend trips to NASCAR races in Martinsville, Dover, Bristol and Daytona Beach. Perched on the edge of his aluminum bleacher seat, Hodges decided early on he one day would make his living working on stock cars like the ones Davey Allison and Terry Labonte drove.
"All I've ever wanted to do is be in racing," said Hodges, a 31-year-old New Kent native. "Racing was the only reason I got good grades, because my dad wouldn't take me to races unless I behaved myself and made good grades.
"To be where I am today is totally great."
Hodges will be in Daytona Beach, Fla., this afternoon. He is a Sprint Cup Series car chief for the No. 8 Earnhardt-Ganassi Chevrolet driven by Aric Almirola, who will start 11th in today's Daytona 500.
As car chief, Hodges serves as liaison between crew chief Doug Randolph and the guys who work on the car in the shop and at the track. In essence, it is Hodges' job to ensure the guys who turn wrenches make the car fast.
Many would say he's been successful so far during Speedweeks. Almirola ran seventh in 500 qualifying, finished fifth in one of the 150-mile duels and posted the fastest lap (191.436 miles per hour) in Cup practice a few days ago.
But just finishing near the front won't cut it for Hodges, because he knows the Chevy will go fast on a superspeedway. As car chief last year for the same team - part of what was then known as Dale Earnhardt Inc. - he helped Paul Menard win the pole for the July race at Daytona.
Menard also finished second on the superspeedway at Talladega, led several races and finished 26th in owner points, qualifying the team's new driver (Almirola) for the first five races this season. But Hodges expected more.
"Compared to the year before, those results were a humongous improvement," said Hodges, a first-year Cup car chief in 2008.
"But it's not what I'd consider a successful first year, because we didn't win a race.
"If we aren't first in the Daytona 500, I'll be disappointed because I know we have a great car, an excellent motor, a great driver and a good group of guys."
Randolph says that Hodges' attitude is a key component in team chemistry.
"Jefferson has a way of managing the guys," Randolph said. "I don't know if it's how he carries himself or what. Maybe his confidence just rubs off.
"I know that neither of us has to give the crew a lot of direction. I think a lot of that has to do with his ability to get his message across without having to be too hands on."
Hodges can turn a wrench if needed. He worked in former Cup owner Junie Donlavey's shop as a 17-year-old, then spent nine years in Richmond shop of legendary chassis builder Rick Townsend.
He built chassis at Townsend for Dale Earnhardt Jr., who encouraged him to move to Charlotte, N.C. Hodges moved there in 2004, eventually becoming crew chief of Earnhardt's start-up team in the Busch Series.
Hodges has continued his rise in NASCAR during a tumultuous past two years. Earnhardt-Ganassi is the fourth evolution of the MB2 Motorsports team he joined in 2006.
"Few people have seen as much, or gotten a more personal view, of how cutthroat this (NASCAR) business is," Hodges said.
"I've survived two of the biggest mergers ever in the sport, and seen more than 300 people get laid off."
Hodges said it hurts to see so many friends lose their jobs, but he understands why.
"The problem is NASCAR grew too fast," he said. "It isn't downsizing, it is right-sizing."
That means there are fewer crew members and far fewer sponsorship dollars than a couple of years ago. Almirola begins the season with a primary sponsor, Activision's Guitar Hero video game, for only three races.
Team co-owner Chip Ganassi said Friday that Almirola won't run a full season unless funding is secured. Hodges acknowledges a good showing into today's Daytona 500 might help.
He doesn't mind the pressure, because he's where he dreamed about being since he was a kid.
"Jefferson's father always told him: 'Find something you love to do and make it an occupation,' " said Marjorie Hodges, Jefferson's mother. "He's doing what he loves to do.
"But he understands it's more of a business than a dream."
Activision Blizzard, Inc.


text:
Q: Split a data table into hourly totals in R I have the following data, where each row corresponds to a member of the household that takes a certain trip.
Since we are talking about members of the household, these rows can have overlapping times as seen by
row 1 and row 2. The duration of the trip is noted in minutes. The IDX is simply just an index, to make the transformation retraceable.
IDX  | ID   | Trip |   StartDateTime    | Duration (in minutes)
1    |  1   |  1   |  2015-01-21 13:00  | 100
2    |  1   |  1   |  2015-01-21 13:00  | 184
3    |  1   |  1   |  2015-01-21 10:00  | 91
4    |  1   |  2   |  2015-01-22 13:00  | 30
5    |  2   |  2   |  2015-01-30 23:00  | 100

Now I would like to split this data per id, trip, day into hourly data as follows:
IDX |  ID   | Trip |   StartDateTime      | Duration (in minutes)
1   |  1    |  1   |  2015-01-21 13:00    | 60
1   |  1    |  1   |  2015-01-21 14:00    | 40

Notice that the total duration of this group is still 100, similar to the first row. Second, the
IDX is taken from the first row. However for the 4th row, we do not have more than 60 minutes so
that one will not be split. Resulting:
IDX  | ID   | Trip |   StartDateTime      | Duration (in minutes)
4    |  1   |  2   |  2015-01-22 13:00    | 25

The hardest problem now becomes the fifth row, that one is actually crossing a day!
So that one will become:
IDX  | ID   | Trip |   StartDateTime      | Duration (in minutes)
5    |  2   |  2   |  2015-01-30 23:00    | 60
5    |  2   |  2   |  2015-01-31 0:00     | 40

Is it possible to expand a table like that?
Code to construct the table:
library(data.table)

data.table(IDX = c(1:5),
           ID  = c(1,1,1,2,2),
           Trip = c(1,1,1,1,2),
           StartDateTime = strptime(c("2015-01-21 13:00","2015-01-21 13:00","2015-01-21 10:00","2015-01-22 13:00","2015-01-30 23:00"), format="%Y-%m-%d %H:%M"),
           Duration = c(100,184,91,30,100)
)

Update
The starting times can be anything like 13:12, but I am not really interested in the starting time exact, so per hour actually.
So if the starting time is not equal to whole hours, such as this:
IDX  | ID   | Trip |   StartDateTime      | Duration (in minutes)
6    |  3   |  1   |  2015-01-30 23:14    | 67

then we get:
IDX  | ID   | Trip |   StartDateTime      | Duration (in minutes)
6    |  3   |  1   |  2015-01-30 23:00    | 46
6    |  3   |  1   |  2015-01-31 0:00     | 11

I am sorry for not clarifying this part, but I think this is a simple post-processing step from eddi's solution.
Thanks

A: This is very similar to @eddi's answer, but using base difftime instead of lubridate functions:
# modifying the example:
DT[1, StartDateTime := as.POSIXct("2015-01-21 13:12")]

DT[,{
    t0  = StartDateTime
    t1  = StartDateTime + Duration*60

    h0  = trunc(t0, units="hour")
    h1  = trunc(t1, units="hour")
    h   = seq(h0, h1, by="hour")
    nh  = length(h)

    dur = as.difftime(rep("1",nh), format="%H", units="mins")
    if (h0 <  t0) dur[1 ] = difftime(h0 + as.difftime("1", format="%H", units="mins"), t0)
    if (h1 <  t1) dur[nh] = difftime(t1, h1)
    if (h0 == h1) dur     = difftime(t1, t0)

    list(h = h, dur = dur)
}, by=.(IDX, ID, Trip)]

which gives
    IDX ID Trip                   h     dur
 1:   1  1    1 2015-01-21 13:00:00 48 mins
 2:   1  1    1 2015-01-21 14:00:00 52 mins
 3:   2  1    1 2015-01-21 13:00:00 60 mins
 4:   2  1    1 2015-01-21 14:00:00 60 mins
 5:   2  1    1 2015-01-21 15:00:00 60 mins
 6:   2  1    1 2015-01-21 16:00:00  4 mins
 7:   3  1    1 2015-01-21 10:00:00 60 mins
 8:   3  1    1 2015-01-21 11:00:00 31 mins
 9:   4  2    1 2015-01-22 13:00:00 30 mins
10:   5  2    2 2015-01-30 23:00:00 60 mins
11:   5  2    2 2015-01-31 00:00:00 40 mins

A: dt[, .(IDX, ID, Trip,
       StartDateTime = StartDateTime + 60*seq(0, Duration, 60),
       Duration = diff(c(seq(0, Duration, 60), Duration)))
   , by = 1:nrow(dt)]
#    nrow IDX ID Trip       StartDateTime Duration
# 1:    1   1  1    1 2015-01-21 13:00:00       60
# 2:    1   1  1    1 2015-01-21 14:00:00       40
# 3:    2   2  1    1 2015-01-21 13:00:00       60
# 4:    2   2  1    1 2015-01-21 14:00:00       60
# 5:    2   2  1    1 2015-01-21 15:00:00       60
# 6:    2   2  1    1 2015-01-21 16:00:00        4
# 7:    3   3  1    1 2015-01-21 10:00:00       60
# 8:    3   3  1    1 2015-01-21 11:00:00       31
# 9:    4   4  2    1 2015-01-22 13:00:00       30
#10:    5   5  2    2 2015-01-30 23:00:00       60
#11:    5   5  2    2 2015-01-31 00:00:00       40

Here's a modification for the non-round hours:
dt[5, StartDateTime := StartDateTime + 14*60]

library(lubridate)

dt[, {dur = diff(c(minute(StartDateTime),
                   tail(seq(0, Duration, 60), -1),
                   Duration + minute(StartDateTime)))
      list(StartDateTime = floor_date(StartDateTime, "hour") + (seq_along(dur)-1)*3600,
           Duration = dur)}
   , by = .(IDX, ID, Trip)]
#    IDX ID Trip       StartDateTime Duration
# 1:   1  1    1 2015-01-21 13:00:00       60
# 2:   1  1    1 2015-01-21 14:00:00       40
# 3:   2  1    1 2015-01-21 13:00:00       60
# 4:   2  1    1 2015-01-21 14:00:00       60
# 5:   2  1    1 2015-01-21 15:00:00       60
# 6:   2  1    1 2015-01-21 16:00:00        4
# 7:   3  1    1 2015-01-21 10:00:00       60
# 8:   3  1    1 2015-01-21 11:00:00       31
# 9:   4  2    1 2015-01-22 13:00:00       30
#10:   5  2    2 2015-01-30 23:00:00       46
#11:   5  2    2 2015-01-31 00:00:00       54


text:
Environmental Studies Courses
Conservation & Protected Areas Management in Africa
This course focuses on areas dedicated to nature conservation in Africa, also known as "protected areas." It explores how they work and why they are so important to the health of the environment in our fast-developing world.
I would like to receive email from EPFLx and learn about other offerings related to Conservation & Protected Areas Management in Africa.
EPFLx
This MOOC is about areas that are dedicated to protecting nature - "protected areas." The coursework explores how they work and why they are so important in maintaining the health of the environment in our fast-developing world; particularly in Africa.
This course will help you learn about conservation challenges in Africa and how protected areas can help face them - from the local level to an international scale. These topics will be explored using best practices from the World Commission on Protected Areas (WCPA) and case studies from the field coming from all over the African continent.
The course is composed of seven thematic modules (key concepts, planning, governance, management effectiveness, specificities of management, financing, and topical issues) that include videos (introduction, five themes, one video on a convention related to PA and a conclusion), readings, training quizzes (optional) and exams (one per week - compulsory for the certificate track).
How protected areas work
Why protected areas are so important in maintaining the health of the environment in a fast-developing world (particularly in Africa)
The challenges of conservation in Africa
The planning process for establishing protected areas
How the effectiveness of a protected area is assessed
Week 1: protected areas concepts
Welcome to protected areas management course
Importance of protected areas and protected area systems
Role and functions of protected areas
Definition of protected areas
IUCN categories for protected areas
Convention on Biodiversity
Week 2: planning of protected areas
Planning of a single protected area
Planning of a system of protected areas
Integrated planning of a protected area and surrounding developed zones
Monitoring of protected area management
Trans frontier protected areas
Aichi targets
Week 3: governance of protected areas
Definition of governance
State protected areas
Private protected areas
Community-based protected areas
Week 4: effectiveness of protected areas
Management effectiveness and adaptive management
Law enforcement in protected areas
Ecological monitoring & conservation
Education and sensitization about conservation
Green List of protected areas
World heritage convention
Week 5: specificities of protected area management
Culture and nature
Capacity-building for protected area management
Species approach
Tourism in protected areas
Convention on International Trade in Endangered Species
Week 6: sustainable funding
Economical values of protected areas
Funding mechanisms
Offset mechanisms
Convention on the Conservation of Migratory Species of Wild Animals
Week 7: cross-cutting themes with protected areas
Protected areas & climate change
Connectivity and buffer zones
Gender & equity
Corruption and natural resources trafficking
Geoffroy Mauvais


text:
__author__ = 'Andrey Usov <https://github.com/ownport/m3ua-unbundle>'
__version__ = '0.1.1'
__license__ = """
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice,
  this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE."""

import sys
import math

PROTOCOLS = {
    'SCTP': 132,
}

SCTP_CHUNK_TYPES = {
    'DATA': 0,
    'INIT': 1,
    'INIT ACK': 2,
    'SACK': 3,
    'HEARTBEAT': 4,
    'HEARTBEAT ACK': 5,
    'ABORT': 6,
    'SHUTDOWN': 7,
    'SHUTDOWN ACK': 8,
    'ERROR': 9,
    'COOKIE ECHO': 10,
    'COOKIE ACK': 11,
    'ECNE': 12,
    'CWR': 13,
    'SHUTDOWN': 14,
}

def remove_extra(chunk):
    ''' remove extra symbols '''

    chunk = chunk[0:53]
    fields = chunk.split(' ')[2:18]
    return ' '.join(fields)

def handle_packet(current_time, data):
    ''' handle packet '''
    data = data.split(' ')

    (ethernet_header, data)   = extract_ethernet(data)
    if ethernet_header['ip.type'] <> ['08', '00']:
        # raise RuntimeError('Unknown IP type: %s' % ethernet_header['ip.type'])
        return data

    (ipv4_header, data)       = extract_ipv4(data)
    if ipv4_header['protocol'] <> PROTOCOLS['SCTP']:
        # raise RuntimeError('Unknown protocol: %s' % ipv4_header['protocol'])
        return data

    (sctp_data, data)       = extract_sctp(current_time, data)
    return data

def extract_ethernet(data):
    ''' extract ethernet header data '''

    header = dict()
    header['mac.desctination'] = data[0:6]
    header['mac.source'] = data[6:12]
    header['ip.type'] = data[12:14]
    return (header, data[14:])

def extract_ipv4(data):
    ''' extract ipv4 header data '''

    header = dict()
    header['version'] = data[0][0]
    header['length'] = int(data[0][1],16) * 4 # length in bytes
    header['dscp'] = data[1]
    header['total_length'] = data[2:4]
    header['identification'] = data[4:6]
    header['flags'] = data[6]
    header['fragment_offset'] = data[6:8]
    header['ttl'] = data[8]
    header['protocol'] = int(data[9], 16)
    return (header, data[header['length']:])

def extract_sctp(current_time, data):
    ''' extact sctp header data '''

    header = dict()
    header['source_port'] = data[0:2]
    header['desctination_port'] = data[2:4]
    header['verification_tag'] = data[4:8]
    header['checksum'] = data[8:12]
    data = data[12:]

    while True:
        if len(data) == 0:
            break
        (sctp_chunk, data) = extract_sctp_chunk(data)
        debug_file.write("%s\n" % sctp_chunk['data'])
        if sctp_chunk['type'] == SCTP_CHUNK_TYPES['DATA']:
            # protocol payload identifier
            payload_identifier = int(''.join(sctp_chunk['data'][12:16]), 16)
            if payload_identifier == 3: # M3UA
                if (sctp_chunk['length'] - 16) < 8:  # small chunk
                    continue
                payload = sctp_chunk['data'][16:sctp_chunk['length']]
                m3ua_hdr, payload = m3ua_header(payload)
                mtp3_hdr = m3ua_to_mtp3(m3ua_hdr)
                if not mtp3_hdr:
                    continue
                if 'protocol.padding' in m3ua_hdr:
                    payload = mtp3_hdr + payload[:-m3ua_hdr['protocol.padding']]
                else:
                    payload = mtp3_hdr + payload
                print_data(current_time, payload)
            else:
                if sctp_chunk['length'] % 4 <> 0:
                    chunk_padding = 4 - sctp_chunk['length'] % 4
                    data = data[chunk_padding:]
    return (header, data)

def extract_sctp_chunk(data):
    ''' extract sctp chunk data '''
    header = dict()
    header['type'] = int(data[0], 16)
    header['flags'] = data[1]
    header['length'] = int(''.join(data[2:4]), 16)
    header['data'] = data[0:header['length']]
    return (header, data[header['length']:])

def m3ua_header(data):
    ''' extract M3UA header information '''
    def network_appearance(data):
        ''' return network_appearance parameters '''

        header = dict()
        length = int(''.join(data[0:2]),16)
        header['network_appearance'] = int(''.join(data[2:6]),16)
        return (header, data[length - 2:])

    def protocol(data):
        ''' return protocol parameters '''

        header = dict()
        length = int(''.join(data[0:2]),16)
        header['protocol.opc'] = int(''.join(data[2:6]),16)
        header['protocol.dpc'] = int(''.join(data[6:10]),16)
        header['protocol.si'] = int(data[10],16)
        header['protocol.ni'] = int(data[11],16)
        header['protocol.mp'] = data[12]
        header['protocol.sls'] = int(data[13],16)
        if length % 4 <> 0:
            header['protocol.padding'] = 4 - length % 4
        return (header, data[14:])

    header = dict()
    header['version'] = data[0]
    header['reserved'] = data[1]
    header['message_class'] = data[2]
    header['message_type'] = data[3]
    header['message_length'] = int(''.join(data[4:8]),16)

    # handle tags
    data = data[8:]
    while True:
        try:
            tag = data[0:2]
            if tag == ['00','06']:
                data = data[8:]
            elif tag == ['02','00']:
                (na_hdr, data) = network_appearance(data[2:])
                header.update(na_hdr)
            elif tag == ['02','10']:
                (protocol_hdr, data) = protocol(data[2:])
                header.update(protocol_hdr)
            else:
                break
        except ValueError:
            break
        except IndexError:
            break
    return (header, data)

def m3ua_to_mtp3(m3ua_header):
    mtp3_header = list()
    # Service information octet
    try:
        sio = '%02x' % ((m3ua_header['protocol.ni'] << 6) + m3ua_header['protocol.si'])
        mtp3_header.append(sio)
        routing_label = (m3ua_header['protocol.sls'] << 28) + \
                        (m3ua_header['protocol.opc'] << 14) + \
                        m3ua_header['protocol.dpc']
        routing_label = '%08x' % routing_label
        routing_label = [routing_label[i:i+2] for i in range(0, len(routing_label), 2)]
        routing_label.reverse()
        mtp3_header.extend(routing_label)
    except KeyError:
        return None
    return mtp3_header

def print_data(current_time, data):
    ''' print data block '''

    print '%s' % current_time
    row_id = 0
    while True:
        if row_id >= len(data):
            break
        print '%04X' % row_id, ' '.join(data[row_id:row_id+16])
        row_id += 16
    print

if __name__ == '__main__':

    current_time = '00:00:00.0000'
    data_block = list()
    while True:
        line = sys.stdin.readline()
        if not line:
            break
        if line[-1] == '\n':
            line = line[:-1]

        if line:
            data_block.append(line)
        else:
            if len(data_block) > 1:
                filtered_block = ''
                for chunk in data_block:
                    filtered_block += ' ' + remove_extra(chunk)
                    filtered_block = filtered_block.strip()
                handle_packet(current_time, filtered_block)
            else:
                try:
                    curr_time_str = ' '.join(data_block).strip()
                    curr_time_str_split = [f for f in curr_time_str.split(' ') if f]
                    secs, msecs = map(int, curr_time_str_split[1].split('.'))
                    hours = secs / 3600
                    mins = (secs - hours * 3600) / 60
                    secs = (secs - hours * 3600 - mins * 60)
                    current_time = "%02d:%02d:%02d.%06d" % (hours, mins, secs, msecs)
                except:
                    pass
            data_block = list()


We all want to protect our kids but is shielding them from bad news the best way to go about it?
The recent events in Christchurch have presented parents with an interesting dilemma...how do you talk to your kids about things like terrorism? Andrew and Holly chat to Dr Justin Coulson about how to approach this difficult subject with your children.
And are you finding it tough deciding on a name for your baby? Well, a UK teen has come up with an interesting business idea where she helps name people's kids. What a world we live in.


text:
Q: .append  JQuery not working in IE My table is printing fine in Firefox, but is not displaying in IE9.
Any help would be greatly appreciated.
Thank you.
Please see code below:
$("p").append("
");
$("p").append("This is printing in IE"); //table is not

$("p").append("
");
$("#course_titles").append("
");
$("#course_titles").append("Course Title	");
$("#course_titles").append("CU Equivalent	");   //None of this table is printing in IE, works in Firefox
$("#course_titles").append("Subject	");
$("#course_titles").append("ECTS	");
$("#course_titles").append("Credit Value	");
$("#course_titles").append("Course Number	");
$("#course_titles").append("
");
$("#course_titles").append("
");

$("p").append("
");
$("p").append("This is printing fine in IE");

A: Since it is working fine on my IE9, I would suggest appending the whole HTML with one `.append()' method instead of trying to append the table and try to use selector with its id. It sounds like your IE9 is having troubles finding the appended element most likely appended DOM element not being ready to use:
$("p").append('
'
    +'
'
    +'Course Title	'
    +'CU Equivalent	'
    +'Subject	'
    +'ECTS	'
    +'Credit Value	'
    +'Course Number	'
    +'
'
    +'
');

http://jsfiddle.net/rb1ydsk0/2/


Note: This is not a direct bus service. There will be a transfer at Cleveland, OH with a layover of 105 minutes, Please see details in e-ticket after purchase.
Note: This is not a direct bus service. There will be a transfer at Cleveland, OH with a layover of 95 minutes, Please see details in e-ticket after purchase.