text:
You waddled and flapped all the way to the Surrounded By Penguins nesting grounds! N-ice. Welcome to our colony.
Surrounded By Penguins™, is a wildlife-conscious company dedicated to connecting humans and the natural environment through everyday eco-conscious products. On these products, we feature designs made from images of birds we observe in their natural environment. Mainly penguins. 😁 🐧
We believe that with intentional production comes responsible consumption. Because of this, we utilize waste reducing online and print on demand practices to make what we create.
At Surrounded By Penguins we feel that seeing wildlife in their natural environment evokes emotions that rekindle our connection to nature. Sometimes the distance between people and nature creates a disconnect that is damaging to both humans and wildlife. That's why we utilize everyday products for our designs. We hope that with more exposure, people will remember that they too are a part of nature. These reminders compel us to do good for ourselves, wildlife, and our shared environment. Thank you for supporting our endeavors.
In addition to photographing wildlife and designing eco-conscious products, we create worldwide challenges and events that aim to help wildlife and our environment.
Participate in our ongoing worldwide "2 for Tuesday" event anywhere you are, any and every Tuesday you can! All you got to do is pick up 2 pieces of litter and dispose of them appropriately. That's it! We challenge participants to do this every Tuesday because a little help does a penguin good. A lot of people doing a little good has a greater impact on the environment than one person doing a lot. So spread the word and challenge others!
See our Events page for more upcoming SBP events!
To learn more about our eco-conscious practices and beliefs, please read our About section. There you can also discover more About Surrounded By Penguins hopes and dreams, what else we do for the environment. If you want to know about what we're up to, check out our Blog or Social Media pages.
Surrounded By Penguins will continue to operate with wildlife in mind. Regardless of profit margins, we will continually contribute to championing for wildlife. We will host events, volunteer, donate, and participate as usual but your contribution helps extend that impact. Help us help contribute to more wildlife by purchasing our products or by Being A Hero. After all, a little help does a penguin good.
Squawks a lot for stopping by Surrounded By Penguins we hope you enjoy waddling around our colony.
The combined efforts of you and Surrounded By Penguins helps to amplify doing good for the environment and wildlife. Yay to forming a human and wildlife creche!
With Appreciation,
Surrounded By Penguins


The other day, as I dropped my son off at school, I spotted Peter Pan, Fancy Nancy, Huckleberry Finn, and the Cat in the Hat all tumbling into the school with him.
The gaggle of giggly children were dressed up as their favorite book characters to celebrate World Book Day.
While I watched them, I thought about all the books I have read to my son (one of my treasured pastimes). I started to realize that writing for kids can teach us a lot about web and copywriting.
This week, I want to have some fun, and indulge in some nostalgia and inspiration by digging into what children's books can teach us about great writing.
Things adults take for granted intrigue and fascinate children. Children approach the world with a sense of curiosity and wonder as they learn about it.
My son used to be fascinated by lights and their switches. He would spend ages going back and forth switching a light on and off. Doing it slowly, then quickly. Hearing the barely noticeable buzz of electrical current when it was on. He observed every detail about one light and then compared it with one in another room.
Hayley is a freelance web writer who specializes in health, beauty and psychology. She is living and working in South Africa.
I love the concept of this article — and all the quotes!
There's a good chance it's the same book, my Mom got it for me when we lived in the states.


text:
André Ribeiro da Cunha Pereira () (January 18, 1966 – May 22, 2021) was a Brazilian racing driver who raced in CART from 1995 through 1998, where he claimed three wins.

Career
Ribeiro started his career in karting and he finished second in the Paulista Kart Championship, Brazil's national karting championship, for three consecutive years between 1986 and 1988. In 1989 he moved to compete in Formula Ford finishing third in his debut season in Brazil's national Formula Three Championship. In 1990 he moved to Formula Opel where he competed for Team Lotus Nederland. In 1991 he moved to British Formula 3 where he drove first for Paul Stewart Racing and then Fortec Motorsport. In 1994 he drove in Indy Lights for Tasman Motorsports finishing second in his debut 1994 season where he won four races.

Ribeiro remained with Tasman Motorsports when he moved to CART in 1995 and would remain with them until 1997. He finished 18th at the 1995 Indianapolis 500, and got a win at New hampshire. In 1996 he won two oval races at his homeland Jacarepaguá and at the Michigan summer race, and finished fourth at the U.S. 500. The driver ranked fourth in points. In 1997 he scored a third place finish at Toronto and a fourth place at Laguna Seca. For the 1998 season Ribeiro remained in CART but moved to Team Penske, where he scored just 13 points with no top 5s. He retired at the end of the 1998 season.

The Brazilian received an offer to work with Roger Penske in South America, with United Auto, running over 15 car dealerships in São Paulo. He also promoted the Brazilian Formula Renault and Renault Clio Cup together with Pedro Paulo Diniz.

Ribeiro died on 22 May 2021, aged 55, from colorectal cancer.

Racing record

American open–wheel racing results
(key) (Races in bold indicate pole position) (Races in italics indicate fastest lap)

Indy Lights

CART

References

External links

 Official site

1966 births
2021 deaths
Brazilian Champ Car drivers
Indianapolis 500 drivers
Indy Lights drivers
Brazilian racing drivers
EFDA Nations Cup drivers
Racing drivers from São Paulo
Deaths from colorectal cancer
Team Penske drivers
Tasman Motorsports drivers
Paul Stewart Racing drivers
Fortec Motorsport drivers
British Formula Three Championship drivers

redpajama_set_name: RedPajamaWikipedia


text:
Q: Resolving database connection errors like this: [ISQL]ERROR: Could not SQLConnect What does this error typically mean?  I searched around for it on Google, but got a bunch of junk pages with no solutions or answers.
How can I go about resolving this particular error message?

A: I'm assuming that you are using the isql application that comes with the unixODBC driver manager? If you use 'isql -v YourDSN' you will get a more descriptive error message from either the driver manager or driver (whichever is causing the error).

redpajama_set_name: RedPajamaStackExchange


Hey guys! Don't get too scared when you read the title with the word Holiday in it already! Its not that serious trust me.So, recently Jose and I took a trip up to Mackinaw and Jose's parents stayed at our home to watch the farm while we were out. Days ahead of our trip we went full prep mode, to make sure it was ready for people to stay here. You all know, you get a little anxious when you are having people stay over if its not something you do often… especially your mother-in-law. So we tidied up our house and got it ready for them to head over for an extended weekend. Living in a fixer-upper, all of our extra spaces aren't always ready for guests to stay at all times & if you frequent the blog, you know I am a furniture/home decor hoarder, I mean collector, and it's not too difficult to scour my "collection" and put a cozy extra space together for our guests. Jose told me, its a good thing you have all that stuff… which got me thinking, with the holiday's coming up, some of you may have some overnight guests, hopefully scheduled and you are aware of, but nonetheless, planned or not, you may be looking for inexpensive ways to decorate extra spaces in your home to accommodate your guests. Here are some of my favorite items from home decor to furniture to quickly cozy up a space, without being too costly on your holiday budget. Whether it's to organize a space quickly and affordably or to add additional furniture to accommodate your guests here are a few that I'm loving right now….
My main issue in years past is seating & having enough for our guests around the table. So, I wanted to take the time today to show you a quick and affordable way you can have enough seating for your guests this holiday season. The number one thing I do here on the farm is to have stools around always available to seat extra guests when needed. Sounds weird huh? Hear me out! I keep stools around our kitchen island so we have room to gather in the heart of the home which is pretty normal, but I also use stools around the house as plant stands or just tucked in other corners of the house that I can quickly grab when needed if extra guests show up or if I need to set more spots at our dinner table. I found some super affordable wood stools for only $17 at Walmart[here] that I gave a quick layer of paint to customize for our farmhouse & now I have tons of seating around our island and in our kitchen because guess what? I'm hosting thanksgiving dinner this year!! I'm so excited, but now that I have extra seating early I'm feeling a little more confident since we won't have an exact head count until the week of. I love being able to welcome more people into our home knowing that everyone will have a place to sit. Also, can we talk about that Pioneer Woman dutch oven [HERE] I picked up at Walmart as well this week? I blame the late night Walmart trip on that purchase, but now I can serve a thanksgiving dish in a pretty vintage looking floral dutch oven & hopefully impress everyone. I mean, my cooking isn't the best, but at least it will look good right?
Here were the stools before I painted them with fusion mineral paint in Lamp white. They are a steal at $17 each!!
As an interior designer, and simply to feed my addiction of my love for home decor, I routinely browse different store website's to see their new seasonal launch and trend of designs. Over the years I have naturally found my favorites that I go through or have labeled in my head that fit better for certain spaces in the home, or looks I'm trying to achieve. Recently, I have added Walmart.com and their Home Decor and Furniture into that short list of retailers. You can shop by style to help get all the inspiration you need. As a home owner, designing spaces for myself, or recommending options to friends, family, and customers; affordable is always at the top of the list when it comes to key factors in their design choice, and Walmart always excels in that department. Also, Free shipping on orders over $35 – no membership required. I hope that this post today give you another outlet to buy home decor from for every room of your home. Thank you so much for stopping by the blog always and for seeing what we are up to!
Ps. I'm doing a giveaway from this post on my Instagram! Head on over to @LizMarieGalvan on Instagram [HERE] to enter! Also, I worked with Walmart on this post, all content in this blog are of my own.
I am already freaking out about the holidays. Only because it's a major move of furniture etc to accommodate trees and decorations. At the end of the day I would still do it. It's a lot of work and makes the house very warm and cozy and exciting. This year I'm struggling with what to do. I like it to be different and I'm looking at Pinterest, Instagram and lots of Christmas and fall magazines for decorating ideas. Hopefully I'll know soon. Thanks for sharing these items. I need a new rug!
How did you change your Avatar photo?
Set the table with an element that provides some contrast in the space. A pop of colors works wonders. Baccarat tabletop items bring a classic dose of glamour and their signature red is perfect holiday hue.


text:
package org.reclipse.structure.inference.evaluation;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.eclipse.emf.ecore.EObject;
import org.reclipse.math.functions.MathematicalFunction;
import org.reclipse.metrics.extensionpoints.MetricUtil;
import org.reclipse.structure.inference.IAnnotationEvaluator;
import org.reclipse.structure.inference.annotations.ASGAnnotation;
import org.reclipse.structure.inference.annotations.SatisfiedAttributeConstraint;
import org.reclipse.structure.inference.annotations.SatisfiedConstraint;
import org.reclipse.structure.specification.ModifierType;
import org.reclipse.structure.specification.OperatorType;
import org.reclipse.structure.specification.PSAnnotation;
import org.reclipse.structure.specification.PSAttributeConstraint;
import org.reclipse.structure.specification.PSBooleanConstraint;
import org.reclipse.structure.specification.PSCombinedFragment;
import org.reclipse.structure.specification.PSCombinedFragmentItem;
import org.reclipse.structure.specification.PSFuzzyMetricConstraint;
import org.reclipse.structure.specification.PSFuzzySetRatingConstraint;
import org.reclipse.structure.specification.PSMetricConstraint;
import org.reclipse.structure.specification.PSNode;
import org.reclipse.structure.specification.PSNodeConstraint;
import org.reclipse.structure.specification.PSObject;
import org.reclipse.structure.specification.PSPatternSpecification;
import org.reclipse.structure.specification.PSSpecificationConstraint;
import org.reclipse.structure.specification.ui.utils.MathFunctionHelper;
import org.reclipse.structure.specification.util.ModelHelper;

/**
 * @author Dietrich Travkin (travkin)
 * @version $Revision$ $Date$
 * @author Last editor: $Author$
 */
public class SimilarityEvaluator implements IAnnotationEvaluator
{
   @Override
   public double evaluate(ASGAnnotation asg)
   {
      return evaluate(asg, asg.getPattern()) * 100d;
   }

   private double evaluate(ASGAnnotation asg, PSPatternSpecification pattern)
   {
      // return rank/weight
      return rank(pattern, asg) / weight(pattern);
   }

   public double rank(PSPatternSpecification pattern, ASGAnnotation asg)
   {
      // create rank result
      double rank = 0;

      // go through the patterns' fragments
      for (PSCombinedFragment frag : pattern.getCombinedFragments())
      {
         if (ModifierType.ADDITIONAL.equals(frag.getKind()))
         {
            rank += rank(frag, asg);
         }
      }

      // go through the patterns' nodes
      for (PSNode node : pattern.getNodes())
      {
         // only for normal nodes
         if (!node.equals(ModelHelper.getCreateAnnotation(pattern)))
         {
            if (!ModelHelper.isContainedInAdditionalFragment(node))
            {
               if (node instanceof PSAnnotation)
               {
                  rank += rank((PSAnnotation) node, asg);
               }
               else if (node instanceof PSObject)
               {
                  rank += rank((PSObject) node, asg);
               }
               else if (node instanceof PSSpecificationConstraint)
               {
                  rank += rank((PSSpecificationConstraint) node, asg);
               }
            }
         }
      }

      return rank;
   }

   public double rank(PSCombinedFragment fragment, ASGAnnotation asg)
   {
      // create rank result
      double rank = 0;

      // go through the fragments' children
      for (PSCombinedFragmentItem child : fragment.getChildren())
      {
         if (child instanceof PSAnnotation)
         {
            rank += rank((PSAnnotation) child, asg);
         }
         else if (child instanceof PSObject)
         {
            rank += rank((PSObject) child, asg);
         }
         else if (child instanceof PSSpecificationConstraint)
         {
            rank += rank((PSSpecificationConstraint) child, asg);
         }
      }

      return rank * fragment.getWeight();
   }

   public double rank(PSAnnotation annotation, ASGAnnotation asg)
   {
      if (ModifierType.NEGATIVE.equals(annotation.getModifier()))
      {
         // this cannot be unsatisfied
         return annotation.getWeight();
      }

      // get bound objects
      List<EObject> boundObjects = asg.getBoundObjects().get(
            annotation.getName());
      if (boundObjects == null || boundObjects.isEmpty())
      {
         // no bound objects => rank 0
         return 0;
      }

      double rank = annotation.getWeight();

      // for annotation sets
      if (ModifierType.SET.equals(annotation.getModifier()))
      {
         // determine weight of one annotation
         double annotationWeight = annotation.getWeight();

         double boundObjectsRank = 0;
         for (EObject bound : boundObjects)
         {
            PSPatternSpecification pattern = ((ASGAnnotation) bound)
                  .getPattern();
            boundObjectsRank += evaluate((ASGAnnotation) bound, pattern);
         }

         rank = scale(boundObjectsRank, annotation) * annotationWeight;

         // check size conditions
         for (PSNodeConstraint constraint : annotation.getNodeConstraints())
         {
            if (constraint instanceof PSMetricConstraint)
            {
               rank += rank((PSMetricConstraint) constraint, asg);
            }
            else if (constraint instanceof PSFuzzyMetricConstraint)
            {
               rank += rank((PSFuzzyMetricConstraint) constraint, asg);
            }
         }
      }
      else
      {
         // get the bounded annotation
         ASGAnnotation bounded = (ASGAnnotation) boundObjects.get(0);

         PSPatternSpecification pattern = bounded.getPattern();
         rank *= evaluate(bounded, pattern);
      }

      return rank;
   }

   public double rank(PSObject object, ASGAnnotation asg)
   {
      if (ModifierType.NEGATIVE.equals(object.getModifier()))
      {
         // this cannot be unsatisfied
         return object.getWeight();
      }

      // get bound objects
      List<EObject> boundObjects = asg.getBoundObjects().get(object.getName());

      // nothing bound
      if (boundObjects == null || boundObjects.isEmpty())
      {
         return 0;
      }

      double rank = 0;
      if (ModifierType.SET.equals(object.getModifier()))
      {

         // determine weight of one object
         double weightOfOneObject = object.getWeight();

         for (PSNodeConstraint constraint : object.getNodeConstraints())
         {
            if (constraint instanceof PSBooleanConstraint)
            {
               weightOfOneObject += weight(constraint);
            }
         }

         // determine rank of all objects (without set size conditions)
         double allObjectsTmpRank = 0;
         for (EObject boundObject : boundObjects)
         {
            allObjectsTmpRank += object.getWeight();

            for (PSNodeConstraint constraint : object.getNodeConstraints())
            {
               if (constraint instanceof PSAttributeConstraint)
               {
                  allObjectsTmpRank += rank((PSAttributeConstraint) constraint,
                        boundObject, asg);
               }
               else if (constraint instanceof PSMetricConstraint)
               {
                  allObjectsTmpRank += rank((PSMetricConstraint) constraint,
                        boundObject);
               }
               else if (constraint instanceof PSFuzzyMetricConstraint)
               {
                  allObjectsTmpRank += rank(
                        (PSFuzzyMetricConstraint) constraint, boundObject);
               }
               else if (constraint instanceof PSFuzzySetRatingConstraint)
               {
                  // TODO: implement handling of fuzzy set rating
                  // constraints
                  throw new UnsupportedOperationException(
                        "The rating of fuzzy set rating constraints is not yet supported.");
               }
            }
         }

         if (weightOfOneObject > 0)
         {
            rank = scale(allObjectsTmpRank / weightOfOneObject, object)
                  * weightOfOneObject;
         }

         // check all set size conditions either
         for (PSNodeConstraint constraint : object.getNodeConstraints())
         {
            if (constraint instanceof PSMetricConstraint
                  && "SIZE".equals(((PSMetricConstraint) constraint)
                        .getMetricAcronym()))
            {
               rank += rank((PSMetricConstraint) constraint, asg);
            }
            else if (constraint instanceof PSFuzzyMetricConstraint
                  && "SIZE".equals(((PSFuzzyMetricConstraint) constraint)
                        .getMetricAcronym()))
            {
               rank += rank((PSFuzzyMetricConstraint) constraint, asg);
            }
         }
      }
      else
      {
         rank = object.getWeight();
         EObject boundObject = boundObjects.get(0);
         for (PSNodeConstraint constraint : object.getNodeConstraints())
         {
            if (constraint instanceof PSAttributeConstraint)
            {
               rank += rank((PSAttributeConstraint) constraint, boundObject,
                     asg);
            }
            else if (constraint instanceof PSMetricConstraint)
            {
               rank += rank((PSMetricConstraint) constraint, boundObject);
            }
            else if (constraint instanceof PSFuzzyMetricConstraint)
            {
               rank += rank((PSFuzzyMetricConstraint) constraint, boundObject);
            }
         }
      }

      return rank;
   }

   public double rank(PSSpecificationConstraint constraint, ASGAnnotation asg)
   {
      // TODO: 'maybe' - this got changed due to new expressions?
      if (constraint.isAdditional())
      {
         // maybe constraints have no rank
         return 0;
      }

      if (!constraint.isAdditional()
            || asg.getSatisfiedConstraints().contains(constraint.getName()))
      {
         return constraint.getWeight();
      }

      return 0;
   }

   public double rank(PSAttributeConstraint constraint, EObject bounded,
         ASGAnnotation asg)
   {
      if (!constraint.isAdditional())
      {
         return constraint.getWeight();
      }
      else
      {
         // determine the index of PSAttributeConstraint in its node
         int index = -1;
         int currentIndex = 0;
         Iterator<PSNodeConstraint> constraintIter = constraint.getNode()
               .getNodeConstraints().iterator();
         while (index == -1 && constraintIter.hasNext())
         {
            PSNodeConstraint other = constraintIter.next();
            if (other.equals(constraint))
            {
               index = currentIndex;
            }
            currentIndex++;
         }

         if (hasInSatisfiedConstraints(asg, bounded, constraint.getNode()
               .getName(), index))
         {
            return constraint.getWeight();
         }
         else
         {
            return 0;
         }
      }
   }

   public double rank(PSMetricConstraint constraint, EObject boundObject)
   {
      double actual = MetricUtil.getMetricValue(boundObject,
            constraint.getMetricAcronym());
      double expected = Double.parseDouble(constraint.getValueExpression());
      OperatorType operator = constraint.getOperator();

      if (!constraint.isAdditional()
            || checkExpression(actual, operator, expected))
      {
         return constraint.getWeight();
      }

      return 0;
   }

   public double rank(PSMetricConstraint constraint, ASGAnnotation asg)
   {
      if (!constraint.getMetricAcronym().equals("SIZE"))
      {
         return 0;
      }

      if (!constraint.isAdditional())
      {
         return constraint.getWeight();
      }

      // check set size expression
      int desiredSize = Integer.valueOf(constraint.getValueExpression());
      OperatorType operator = constraint.getOperator();
      int realSize = getObjectCount(constraint, asg);

      if (checkExpression(realSize, operator, desiredSize))
      {
         return constraint.getWeight();
      }

      return 0;
   }

   public double rank(PSFuzzyMetricConstraint constraint, EObject boundObject)
   {
      String acronym = constraint.getMetricAcronym();
      double metricValue = MetricUtil.getMetricValue(boundObject, acronym);
      double result = getMembershipValue(constraint, metricValue);

      result *= constraint.getWeight();

      return result;
   }

   public double rank(PSFuzzyMetricConstraint constraint, ASGAnnotation asg)
   {
      if (!constraint.getMetricAcronym().equals("SIZE"))
      {
         return 0;
      }

      int setSize = getObjectCount(constraint, asg);

      return getMembershipValue(constraint, setSize);
   }

   public double weightPattern(PSPatternSpecification pattern)
   {
      double weight = 0;
      PSAnnotation specifiedPatternAnno = ModelHelper
            .getCreateAnnotation(pattern);

      // go through (additional) fragments
      for (PSCombinedFragment fragment : pattern.getCombinedFragments())
      {
         if (ModifierType.ADDITIONAL.equals(fragment.getKind()))
         {
            weight += weight(fragment);
         }
      }

      // go through nodes
      for (PSNode node : pattern.getNodes())
      {
         if (!node.equals(specifiedPatternAnno)
               && !ModelHelper.isContainedInAdditionalFragment(node))
         {
            if (node instanceof PSAnnotation)
            {
               weight += weight((PSAnnotation) node);
            }
            else if (node instanceof PSObject)
            {
               weight += weight((PSObject) node);
            }
         }
      }

      // go through constraints
      for (PSSpecificationConstraint constraint : pattern.getConstraints())
      {
         weight += weight(constraint);
      }

      return weight;
   }

   public double weight(PSPatternSpecification pattern)
   {
      // check for recursion
      if (isRecursive(pattern))
      {
         return Double.MAX_VALUE;
      }

      return weightPattern(pattern);
   }

   public double weight(PSCombinedFragment fragment)
   {
      double weight = 0;
      for (PSCombinedFragmentItem item : fragment.getChildren())
      {
         if (item instanceof PSAnnotation)
         {
            weight += weight((PSAnnotation) item);
         }
         else if (item instanceof PSObject)
         {
            weight += weight((PSObject) item);
         }
         else if (item instanceof PSCombinedFragment
               && ModifierType.ADDITIONAL.equals(((PSCombinedFragment) item)
                     .getKind()))
         {
            // add weight for additional fragment
            weight += weight((PSCombinedFragment) item);
         }
      }

      if (fragment.getConstraint() != null)
      {
         weight += weight(fragment.getConstraint());
      }

      return weight * fragment.getWeight();
   }

   public double weight(PSAnnotation annotation)
   {
      switch (annotation.getModifier())
      {
         default:
            return annotation.getWeight();

         case SET:
            // set annotations have constraint weights
            double weight = annotation.getWeight();
            for (PSNodeConstraint constraint : annotation.getNodeConstraints())
            {
               weight += weight(constraint);
            }

            return weight;
      }
   }

   public double weight(PSObject object)
   {
      switch (object.getModifier())
      {
         default:
            double weight = object.getWeight();

            for (PSNodeConstraint constraint : object.getNodeConstraints())
            {
               weight += weight(constraint);
            }

            return weight;

         case NEGATIVE:
            // negative objects have no constraint weights
            return object.getWeight();
      }
   }

   public double weight(PSSpecificationConstraint constraint)
   {
      if (constraint.isAdditional())
      {
         // additional constraints have no weight
         return 0;
      }

      return constraint.getWeight();
   }

   public double weight(PSNodeConstraint constraint)
   {
      return constraint.getWeight();
   }

   private boolean isRecursive(PSPatternSpecification specification)
   {
      ArrayList<PSPatternSpecification> list = new ArrayList<PSPatternSpecification>();
      list.add(specification);
      return findRecursion(specification, list);
   }

   private boolean findRecursion(PSPatternSpecification specification,
         ArrayList<PSPatternSpecification> list)
   {
      for (PSNode node : specification.getNodes())
      {
         if (node instanceof PSAnnotation
               && !ModelHelper.isCreate((PSAnnotation) node))
         {
            PSAnnotation anno = (PSAnnotation) node;
            PSPatternSpecification newPattern = anno.getType();

            if (list.contains(newPattern))
            {
               return true;
            }

            list.add(newPattern);

            if (findRecursion(newPattern, list))
            {
               return true;
            }

            list.remove(newPattern);
         }
      }

      return false;
   }

   private static int getObjectCount(PSNodeConstraint constraint,
         ASGAnnotation asg)
   {
      String name = constraint.getNode().getName();

      return asg.getBoundObjects().get(name).size();
   }

   private static double getMembershipValue(PSFuzzyMetricConstraint constraint,
         double value)
   {
      MathematicalFunction function = MathFunctionHelper
            .getMathematicalFunction(constraint);
      double result;

      result = function.value(value);
      if (result > 1)
      {
         result = 1.0d;
      }
      else if (result < 0)
      {
         result = 0.0d;
      }

      return result;
   }

   private static double scale(double value, PSNode node)
   {
      PSFuzzySetRatingConstraint setRatingFunction = null;
      for (PSNodeConstraint constraint : node.getNodeConstraints())
      {
         if (constraint instanceof PSFuzzySetRatingConstraint)
         {
            setRatingFunction = (PSFuzzySetRatingConstraint) constraint;
            break;
         }
      }

      if (setRatingFunction != null)
      {
         // compute with the specified set rating function
         MathematicalFunction function = MathFunctionHelper
               .getMathematicalFunction(setRatingFunction);
         return function.value(value);
      }

      // else use this, because no set rating function was specified
      return 2.0d / (1.0d + Math.exp(-value / 5)) - 1.0d;
   }

   private static boolean checkExpression(double number1,
         OperatorType operator, double number2)
   {
      if (OperatorType.EQUAL.equals(operator))
      {
         return number1 == number2;
      }
      else if (OperatorType.LESS.equals(operator))
      {
         return number1 < number2;
      }
      else if (OperatorType.LESS_OR_EQUAL.equals(operator))
      {
         return number1 <= number2;
      }
      else if (OperatorType.GREATER.equals(operator))
      {
         return number1 > number2;
      }
      else if (OperatorType.GREATER_OR_EQUAL.equals(operator))
      {
         return number1 >= number2;
      }
      else if (OperatorType.UNEQUAL.equals(operator))
      {
         return number1 != number2;
      }
      else
      {
         throw new IllegalArgumentException(
               "Unsupported operator found in an expression. Supported operators are =, <, >, <=, >=, and !=.");
      }
   }

   private static boolean hasInSatisfiedConstraints(ASGAnnotation asg,
         EObject context, String nodeID, int attributeIndex)
   {
      for (SatisfiedConstraint constraint : asg.getSatisfiedConstraints())
      {
         if (constraint instanceof SatisfiedAttributeConstraint)
         {
            SatisfiedAttributeConstraint attrConstraint = (SatisfiedAttributeConstraint) constraint;
            if (attrConstraint.getContext().equals(context)
                  && attrConstraint.getNodeID().equals(nodeID)
                  && attrConstraint.getAttributeIndex() == attributeIndex)
            {
               return true;
            }
         }
      }

      return false;
   }
}

redpajama_set_name: RedPajamaGithub


There are 11 criteria (or symptoms) that the DSM discusses, and in order to be diagnosed with this, you must have at least 2 of them. These symptoms or criteria must have occurred within the last 12 months.
1. Alcohol is often taken in larger amount or over a longer period than was intended.
2. There is a persistent desire to or unsuccessful effort to cut down on alcohol consumption or control it's use.
3. We spend a lot of time in activities necessary to obtain alcohol.
4. Craving or intense urge to use alcohol.
5. Recurrent alcohol use resulting in a failure to fulfill major role obligations at work, school or home.
6. Continued alcohol use despite having persistent or recurrent social or interpersonal problems, caused or exacerbated by the effects of alcohol.
7. Important social, occupational, or recreational activities are given up or reduced due to alcohol use.
9. Alcohol use is continued despite knowledge of having a persistent or recurrent physical or psychological problem that is likely to have been caused or exacerbated by alcohol use.
10. Tolerance: when it takes more alcohol than it used to in order to get the same effect.
11. Withdrawal: please be careful with this! It can be life threatening to quit cold turkey without the supervision of a doctor. So please reach out for help prior to just stopping on your own.
Treatment options: We could start by going to a detox house in order safely stop drinking. Then we can step down into a hospital program or inpatient treatment center. I say those separately because inpatient treatment centers can be in homes and much more warm and therapeutic than hospital programs. After that we can move out into a recovery home or halfway house and do day treatment (this allows us to slowly transition back to into life and they believe it lowers relapse rates). Then we can step down into outpatient therapy and group therapy. This could be seeing someone like me and going to AA or another group therapy available.
If you are not the one suffering from this, but are close to someone who is, Al-Anon is a great resource as well. We may not realize it, but by living with someone who is an alcoholic, we have our own struggles and issues we need to work on. Al-Anon is a great place to do that. They even have Alateen for those who are younger.
My dad's side of the family is riddled with Alcoholics :/ After he died I did little contact with them as possible after one Thanksgiving my Aunt called me up, drunk and had me in tears. So I distanced myself as much as possible cause I was a kid but knew better.


text:
.. _qibuild-overviews-building-cmake-projects:

Building CMake projects
=======================

For this overview, we will assume we have:

* A ``foo-sdk`` :term:`toolchain` containing a :term:`packages <package>`,
  named ``bar``

* A :term:`worktree` containing two :term:`projects <project>`,
  the ``world`` project, and a ``hello`` project, which depends on ``world``
  and ``bar``.

* A build profile named ``my-profile`` configured in the worktree.

This overview guides you through all what happens from the moment you run:

.. code-block:: console

 $ qibuild configure --worktree=/path/to/worktree \
                     --config foo-sdk \
                     --profile my-profile \
                     --release \
                     -DWITH_SPAM=ON \
                     hello

to every cmake code that is generated, and what CMake flags are passed.

(We chose a complex example here on purpose to show all the various cases that
need to be handled)

Command line parsing - first pass
---------------------------------

This is done by ``qisys.script.root_command_main`` from
``bin/qibuild`` script.

We look for every module in ``qibuild.actions``, and find the ``configure.py`` module.

Then, we create a ``argparse.ArgumentParser`` parser, and run ``qibuild.configure.configure_parser``
on it.

We parse the command line arguments using this parser, and we now have a ``argparse.NameSpace``
object we can pass to ``qibuild.configure.do``.

.. code-block:: python

   # in qibuild.actions.configure

   def configure_parser(parser):
      # Calls functions in ``qibuild.parsers`` to add all the options
      # this command recognize

   def do(args):
      # In this point we have a argparse.Namespace object with the "raw"
      # result of the arguments parsing
      args.worktree = "/path/to/worktree"
      args.build_type = "Release"
      args.config = "foo-sdk"
      args.projects = ["hello"]
      args.profiles = ["my-profile"]

This "raw" command parsing already took care of simple tasks, like
making sure the ``--debug`` or ``--release`` arguments are converted
to a proper ``CMAKE_BUILD_TYPE``.

Command line parsing - second pass
----------------------------------

The goal is to get a correctly initialized :py:class:`.CMakeBuilder` object

This is done in just a single line:

.. code-block:: python

    # in qibuild.actions.configure

    def do(args):
        cmake_builder = qibuild.parsers.get_cmake_builder(args)

The ``get_`` functions in ``qibuild.parsers`` are here to factorize code
that must be called in every action that uses a BuildWorkTree.

The ``get_cmake_builder`` action looks like

.. code-block:: python

    # in qibuild.parsers

    def get_cmake_builder(args):
        """ Get a CMakeBuilder object from the command line

        """
        build_worktree = get_build_worktree(args)
        # dep solving will be made later by the CMakeBuilder
        build_projects = get_build_projects(build_worktree, args, solve_deps=False)
        cmake_builder = qibuild.cmake_builder.CMakeBuilder(build_worktree, build_projects)
        cmake_builder.dep_types = get_dep_types(args)
        return cmake_builder

Here's what those functions do:

get_build_worktree
++++++++++++++++++

* A new WorkTree object is initialized using the path given in
  args.worktree, or by exploring parent directories until a ``.qi``
  directory is found if ``--worktree`` is not given
  At this point, every path registered in the worktree can be found
  in ``worktree.projects``

* A new BuildWorkTree is initialized. A list of ``BuildProject`` objects is
  built from every project in ``worktree.projects``, by inspecting the various
  ``qiproject.xml``  and looking for ``<qibuild>`` tags.
  Note that at this moment ``build_project.build_depends``, ``build_project.run_depends``,
  and ``build_project.test_depends`` are **sets** of **names** because no
  dependency resolution has been done yet.

* A new CMakeBuildConfig object is initialized, using the ``.qi/qibuild.xml`` file to
  read the default config that should be used. If the user has an incorrect
  default config specified in the ``.qi/qibuild.xml`` file, an error is raised
  immediately.

* Then, the ``build_config`` object is configured using the ``args`` object and
  the ``qibuild.xml`` configuration files.

  First, the ``-c`` argument is checked to see if it matches a known toolchain.
  If not, an error is raised.

  Then, the configuration specific settings and the default settings
  in ``~/.config/qi/qibuild.xml`` are read.

  For instance, if the user specified ``-c foo-sdk`` on the command line there is a
  ``<cmake gererator="Ninja">`` tag  in the ``<config name="foo-sdk">``
  section of ``~/.config/qi/qibuild.xml``, ``build_config.cmake_generator`` is set
  to ``Ninja`` and ``build_config.toolchain_name`` to ``foo-sdk``

  Lastly, the options coming from the command line are applied to the
  ``build_config`` object.

  This is done *after* reading the config files, so that settings can be
  overwritten. Thus the user can for instance specify
  ``--cmake-generator="Unix Makefiles"`` to overwrite the default CMake
  generator configured in ``~/.config/qi/qibuild.xml``

* Lastly, the ``build_config`` is applied to the ``BuildWorkTree``:
  ``worktree.build_config = build_config``.

Note: the code later looks like:

.. code-block:: python

  # in BuildProject

  def configure(self, **kwargs)
      cmake_args = self.cmake_args
      build_directory = self.build_directory

But actually, ``cmake_args`` and ``build_directory`` are both properties.

This means that the build dir will always match the latest build settings,
and that the list of CMake args in the BuildProject will always be up to date.

.. code-block:: python

    # in CMakeBuildConfig

    @property
    def cmake_args(self):
        # Transform all the "high level" settings into a list of
        # CMake arguments

    >>> build_config.cmake_generator == "Ninja"
    >>> build_config.cmake_args
    ["-G", "Ninja"]
    >>> build_config.toolchain_name = "foo-sdk"
    >>> build_config.cmake_args
    ["-DCMAKE_TOOLCHAIN_FILE=/path/to/foo-sdk/toolchain.cmake"]

The build config also manages the environment variables, so that
you can for instance set a suitable ``PATH`` when using mingw
on windows without to mess with the registry base.

.. code-block:: python

    # in BuildProject
    @property
    def build_directory(self):
        #  Create a sensible build dir, using
        # self.build_worktree.build_config

    >>> build_config.build_type = "Release"
    >>> hello_project.build_directory = "/path/to/hello/build-release"
    >>> build_config.profiles = ["my-profile"]
    >>> hello_project.build_directory = "/path/to/hello/build-my-profile"

get_build_projects
++++++++++++++++++

The goal here is to get a list of ``BuildProject`` objects to build.

* If no build project named is specified, the parent directories are
  explored until a ``qiproject.xml`` containing a ``<qibuild>`` tag is found.

  If no such project is registered in the ``BuildWorkTree`` yet, it will
  be automatically added to the worktree cache.

* If the user specified some projects in the command line, a matching ``build_project``
  is searched in the ``build_worktree`` for every project name specified on the
  command line. If no build project is found, an error is raised.

Note that at this point, no dependency solving has been done yet.
Meaning that the ``projects`` list only contains the ``hello project``

get_dep_types
+++++++++++++

Here, ``get_dep_types`` is used to converting the ``--runtime``,
``--build-deps-only``, ``--single`` arguments into a list of build types:

* default: ``["build", "runtime"]``
* ``--runtime``: ``["build", "runtime"]``
* ``-s, --single`` : ``[]``
* ``--build-deps-only`` : ``["build"]``

Finally, ``CMakeBuilder.dep_types`` is set
In our examples, no argument was specified at all, so the build and the
runtime dependencies are going to be used.

Configuring the project and its dependencies
---------------------------------------------

Here's what the code looks like:

.. code-block:: python

  # in qibuild.cmake_builder

  class CMakeBuilder:
      def __init__(self, build_worktree, projects):
          self.build_worktree = build_worktree
          self.projects = projects
          self.deps_solver = BuildDepsSolver(self)

      def configure(self, **kwargs):
          self.bootstrap_projects()
          projects = self.deps_solver.get_dep_projects(self.projects, self.dep_types)
          for project in projects:
            project.configure(**kwargs)

Note that the ``CMakeBuilder`` contains a ``BuildDepsSolver`` to delegates
all the dependencies solving.

For instance, configuring ``hello``, by default should call ``configure()`` on
the ``world`` project, unless ``-s`` was specified.

Also, since ``hello`` has a runtime dependency on the ``bar`` package,
``qibuild install --runtime hello /tmp/hl`` should install both ``hello``
and ``bar`` to ``/tmp/hl``

Also note that ``CMakeBuilder`` delegates the actual call to ``cmake`` to
the build project itself

Generating the dependencies.cmake
+++++++++++++++++++++++++++++++++

For the ``CMake`` call to work, a ``dependencies.cmake`` must be written
in the build directory

This is done by ``cmake_builder.bootstrap_projects``

Here it is important that the ``dependencies.cmake`` always contains the list of every
build dependencies, even if ``-s`` is used.

Calling CMake
+++++++++++++

Here ``deps_solver`` uses ``self.dep_types``, so that when
``qibuild configure -s hello``, is used,
``world.configure()`` is not called.

Installing
++++++++++

When installing a project, the ``deps_solver`` is again used to get a
list of packages to install.

Then either:
 * the whole contents of the packages are installed (the "-config.cmake" files, the
   headers, the static and shared libraries, etc.)
 * if ``solving_type`` was set to ``runtime``, only the runtime parts of the packages
   (shared libraries) will be installed.

Building projects outside a qiBuild action
------------------------------------------

This could be part of a continuous integration script, for instance:

.. code-block:: python

      worktree = qisys.worktree.WorkTree(worktree_root)
      build_worktree = BuildWorkTree(worktree)
      build_config = build_worktree.build_config

.. note::

    Here the build_config has already been initialized from the
    various config files, and default values, but you can still
    use:

    .. code-block:: python

        build_config.set_active_config("mytoolchain")
        build_config.build_type = "Release"

.. code-block:: python

      project = build_worktree.get_build_project(name)

      cmake_builder = CMakeBuilder(build_worktree, [projet])

      # Configure and build the build and runtime deps of the
      # project:
      cmake_builder.configure()
      cmake_builder.build()

If you then need to install the runtime parts only
(to make a redistributable package for instance)

.. code-block:: python

      cmake_builder.dep_types = ["runtime"]
      cmake_builder.install(destdir="package")


Learn science, biology, chemistry, transistors, astronomy, math, physics, research electronics much more. We strive for our commitment to fast and friendly registry services. How to drive without a license.
Welcome to the Digest of Motor Laws. Use the pre- application feature for faster service. Why Are There So Many Steps to Get Licenced?
A Government of Alberta authorized Registry Agent providing search and registration services. Alberta Transportation' s website to view coaching work books, print driver' s handbooks, practice tests get newing Your Driver' s License? Driver license renewal in alberta.
Perhaps your teenager just passed her driving test and is now a G1- licenced driver. The AAA Digest of Motor Laws is an online compendium of laws owning a motor vehicle in the United States , rules related to driving Canada. We are an Alberta government authorized registry and have been an AARA ( Association of Alberta Registry Agents) member since 1993.
Obituaries for the last 7 days on Your Life Moments. Don' t get caught with expired documents! 101 is the internet science PORTAL to.
Use the map below to browse each state' s traffic laws vehicle titling , registration requirements, taxes, fees , driver' s licenses traffic safety. What is the difference between driving and traveling? The Government of Alberta introduced a special veterans' licence plate in and a motorcycle veterans' licence plate in to honour the contributions of Alberta laware. Non- Professional Driver' s License.
Part 8 Transitional Provisions Consequential Amendments, Repeals Coming into Force Subpart 1. For further information, please contact our customer service atto ensure that all of your outstanding parking tickets are identified.
Renewal of Driver' s License of Filipino Living t a renewal reminder and we' ll let you know when it' s time to start shopping for savings. 4 A Commercial Driver' s Guide to Operation taxi , Light Trucks) will give you the necessary information for learning to drive a truck, along with the Driver' s Guide to Operation, Safety , Safety , tractor- trailer, Licensing This guide, Licensing ( Cars , ambulance bus. Advance Renewal of Driver' s License.
Novice drivers cause many traffic- related deaths and injuries. Welcome to the official site of the Virginia Department of Motor Vehicles with quick access to driver , vehicle online transactions information.
Driver license renewal in alberta. Can you legally drive without a license? A Passport Renewal is for passport applicants that were issued an ADULT passport within the last 15 years.
Passport Renewal Change Passport Type. Professional Driver' s License. We blend media expertise with smart marketing. Please be advised that you may have other oustanding parking tickets for additional license plates registered to your name.
Sign Up for the Renewal Reminder Service. Get electronic licence plate & driver licence renewal reminders for free. In response to collision statistics successful licensing systems used in other countries, provincial territorial governments in Canada introduced new driver licensing standards earlier this.
Driver Education Learner Permit: Authorizes the holder to operate the same vehicles as a Class D license while taking an approved driver education ee email text Reminder Don' t get caught with an expired plate driver' s license. Student Permit Transactions. Learner' s Tips: Please drop by for an online study guide. Whatever the situation may be chances are they are insured under your vehicle policy. I have been going here for years and have never had an issue. The name is perfect because I' m always ' in &. Postmedia Solutions gives you the power to grow your business.
Or maybe your son is coming home for the summer with a G- license. We are a designated service provider for Alberta Registries and provide a wide range of services to companies & individuals in the Province of Alberta. We welcome all drivers of all ages regardless of driving record past history as long as you have a valid license even with equently Asked Questions about starting maintaining an Inspection Facility. It' s the perfect balance of creativity conversion , engagement, science to propel brand awareness loyalty.
At Southland Registrations Ltd. Driver license renewal in alberta. Visit Alberta Transportation' s website to view practice tests , coaching work books, print driver' s handbooks get additional information about driver licensing.
Welcome to our website! Millwoods Registry is an authorized agent for Service Alberta offering a full range of Registry products and services. A D D / R E N E W T R A N S F E R F R OM T R N S F E R T O R E P L A C E P L A TE E P L A C E C A R D E C L A S C O R R E C T I ON S H V P E R M IT Y E A R T Y P E A X L E / S E A TS Q C A X L E S F U E L HVUT HVUT HVUT HVUT HVUT StatE of illinoiS ( irp) intErnational rEgiStration plan application ( PAGE 3) _ _ _ _ of _ _ _ _ please fill out completely.
Is an aspect of sovereignty that many people want to learn. Driver license renewal in alberta.
We' ve been proudly serving Edmonton' s registry needs since 1994. Staff are always courteous and knowledgeable. Online Services > >.
A 94- year- old loses her driver' s license for going too slow 4: 19.
A driver' s license is an official document permitting a specific individual to operate one or more types of motorized vehicles, such as a motorcycle, car, truck, or bus on a public road. The term driver' s license is American English; the Canadian English equivalent is driver' s licence, the Australian English equivalent is driver licence and in British English it is driving Canada, driver' s licences are issued by the government of the province or territory in which the driver is residing.
Thus, specific regulations relating to driver' s licences vary province to province, though overall they are quite similar. All provinces have provisions allowing non- residents to use licences issued by other provinces and territories, out- of- country licences, and.
What Every Driver Must Know.
Published August Web Updated September 20,. The documents on this page are in PDF format. Excellent service.


The Week in iOS Apps: Ready for Rio?
This week's roundup includes a trio of apps to help you maximize your enjoyment of the Olympics.
This week's roundup includes a trio of apps to help you maximize your enjoyment of the Olympics. Read on!
Ready for Rio? Your best mobile viewing option will be the NBC Sports app (free), where you'll be able to view some events live, have access to replays of other events, and see highlights of each day's medal winners. You'll need to subscribe to a TV provider, though, to access video of the games through the app.
Rio 2016 (free) "has the most up-to-date information on the Olympic schedule and results, medals, sports, athletes and teams, venues, maps, and spectators guides." The app also includes real-time medal tables and photos from events all over the city.
Not to be left out, The Score (free) offers its own helpful ways of following the Olympics. Sign up to get alerts for either your favorite country or your favorite team, letting you know when they've won a medal or experienced the agony of defeat.
Bangers (freemium, iPhone only) lets you play and remix dance hits on your phone—Bangers and mash!—conjuring catching new beats that you can share with the world to keep your toes tapping all summer long. New songs are uploaded each week.
Dropbox Paper (free) marks a turning point for Dropbox—instead of offering storage for photos, documents, and more, the new Paper app (which appears to combine elements of Slack and Google Docs) lets users collaborate on creating and syncing documents. You can post replies and comments in the document as well.
Moji Maker ($1, iPhone) lets you ... make emojis.
One pitch for Picniic (freemium, iPhone) calls it "Slack for families." It features a family locator—so parents can know where their children are—as well as a shared family calendar, to-do lists, shopping lists, and more. The new app has already received an update to include a Garbage Day reminder.
Tinycards (free, iPhone and iPad) lets you create flash cards—or pick from ready-made decks—to test and improve your memory on whatever topic you choose. "You'll find country capitals, vocabulary in different languages, history, constellations, hat styles, you name it!" Your favorite decks can be shared with friends.
Hopper now alerts you to airline fare sales, making travel cheaper … Tinder has added its new (occasionally controversial) "Tinder Social" feature … Firefox has update with speedier page-loading times ... Gboard, Google's iOS keyboard, has added support for more languages, smart GIF suggestions, and the ability to personalize its look.


My late 2012 Mac mini came with the hard drive installed in the upper bay (the one that is on the 'bottom' when the mini is upside down). I want to install an SSD drive in the other bay but can't find the proper hard drive mounting pins. Where can I get these?
As I've explained earlier, I am trying to install an SSD in the lower, second drive, bay. This does not necessitate anything other than a SATA cable (which I have) and the 2 mounting pins (which I need). Everything else is unnecessary as it does not require removing the logic board. Thanks for your input. Everyone has been very helpful.
I suggest you buy this dual drive kit for your Mac mini, it has those pins you need and it comes with the tools needed too.
Thanks, but to add a second drive in the lower bay(closest to wifi shield) I don't need to remove the logic board. All I need are the 2 mounting pins.
BTW, I already have the proper SATA cable.
@zarkov33 The way I suggested is the best way to go thermal-wise. Your drive may not get the proper cooling where you want to put it so I am still suggesting you get that mounting kit so you can mount it correctly.
Plus, I have no idea where you are talking about putting this nor if it will work.
I plan on adding the drive to the second drive bay (lower bay). I know it will work because the mini is designed to hold 2 drives. I've done it before.


The Steinbach Credit Union, Manitoba is amongst the best credit unions of Canada. The Steinbach Credit Union, Manitoba is the biggest credit union of Manitoba. The excellent standard of services, provided by the Steinbach Credit Union, Manitoba, has resulted in more people becoming its members.
The Steinbach Credit Union, Manitoba has more than 60,000 members. The Steinbach Credit Union, Manitoba has more than $1.9 billion in assets.
For the last six decades the Steinbach Credit Union, Manitoba has been addressing to the financial problems of its members through their personal financial services. These services have enabled their members to achieve their financial ambitions.
The Steinbach Credit Union, Manitoba offers excellent business services to its members. The Steinbach Credit Union, Manitoba tries to assist its members in their business efforts by helping them to get access to the best business tools and services.


text:
The Whale by Aidan Koch
Koch, Aidan. The Whale. Gaze Books, 2010. ISBN: 9780615393421.
Way back in September of last year, I discovered the work of Aidan Koch and wrote about two of her short comics. I began that post:
Sometimes I read a comic and it reminds me that comics can be narrative without being clear, character driven, or plot-based. Comics narratives can be abstract, allusive, elusive, elliptical, yet still visual rich and… poetic.
A couple months later, I wrote about two more of her minicomics:
I can't even begin to make words to really describe or interpret the comic. I don't really want to. The combination of the words and the drawings go beyond any clear literal meaning.
I included her works on my best of list for 2009. So needless to say I was very excited when the first announced book for Blaise Larmee's Gaze Books was a longer work by Koch.
The Whale is a small (5″ x 7″) thin (64 pages) book that fit perfectly in my coat pocket when I took it to the local cafe to enjoy over some coffee. The design is exceedingly simple, no text on the back cover, no information about the author, just a very small indicia. The cover is lovely, primarily light blue except for the title, author's name, and a cut-out white circle over part of the image. The pencilled image is, I believe, crashing waves, though they are dark and jagged enough that they might also be the abstracted tops of trees in the distance. Texture, tone, and ambiguity, it's enticing.
The whole book is drawn in pencil, with a varieties of tones, clearly showing the stroke of the pencil. The pages are often sparse, with very few panels, the drawing is realistically proportioned but abstracted in details. They are simplified yet often quite allusive and attractive. There are some panels, pages, and sequences that are just wonderful. Here's an early spread:
And an abstracted page of water:
Unfortunately, as a whole narrative, The Whale is doesn't quite hit the mark, perhaps even more sharply when compared with her previous work, and the qualities I really loved about that work. If "Little Flashes" and "Hypnotizing" were allusive, elliptical, and poetic, The Whale is all too direct and lacking in ambiguity. The story follows a woman who has lost her husband/lover/boyfriend in a car accident. She is in mourning, living alone with her dog along the shore. The narration by the woman too easily spells out the situation and I never really felt the sadness that, I imagine, should be the conveyed emotion.
If in her earlier works, the words added mystery, a connection with the images that required thought or imagination, the words here are too much a simple narration. The best moments here are the silent ones, where the reader must make the connections or where the narration is more emotive than descriptive.
I think there is a really excellent potential comic hidden in these pages, to be found in those quiet scenes and in some more visual way of drawing out some of the narrated information or in an more allusive way of narrating. The woman walking on the shore with her dog. The woman taking the deceased's stone and shell collection and returning them to nature. A whale washed up alone and far from its natural habitat on the shore. There are scenes, symbols, and ideas that really work here, but they are all connected too literally with explication and narration that says too much.
The least successful example of this excess being a scene where the women sees and talks to a ghostly figure that appears in the row boat she's travelling in. The scene is played too long and the ghostly figure, by its actual representation, ends up looking a little silly.
One of the more powerful images is a semi-abstracted seascape of penciled waves and a silhouette in the water of the woman, up past her waist in the water. From her body emits these three sinuous lines, lines that echo an earlier image of the whale swimming underwater with very similar lines emitted from it, as if it were calling out for help. They make a powerful pairing, only a few pages apart, yet the scene with the whale seems too directly narrated, playing out quickly and at a distance (the woman tells us about the whale, but we don't see her seeing/experiencing it). And both scenes are narrated retrospectively which distances the reader from the events some. The woman is past them and so are we.
The edition I got (the limited one) came with a small etching, a photograph (of the shore, perhaps a photoreference for the book), and a series 4″x 5″ cards, printed in black and blue, showing images related to the book, some are directly from pages others are more like alternate panels. They are quite lovely and simple. Quiet images of the girl on the beach, waves, shells, the whale's tail raising from the water, a field of grey pencil marks, and others that form their own version of the story, silent and elliptical.
Perhaps my expectations were too high, but I think The Whale suffers from a lack of… discretion? Or from an excess of explanation. Perhaps Koch's skills are more attuned to a shorter work, where the limitations of space force a different method of narration and monstration. For instance, one of her recent minicomics "Vastness No. One" (you can see an animated gif page through of it) is a collection of five "short stories and poems." They are drawn in a very similar pencilled style (though the production values make the images much less crisp and tonally rich), but they are each extremely short, packing in images and text in a way that leaves room for the reader to wander. The emotions of the short stories remain slightly ambiguous, slightly unclear, but in a way that really works to draw out some emotion.
For most plot/character driven art, clarity is a virtue. You want, for the most part, a clarity that allows you to follow the events in the story, to understand the characters, to locate the scenes. Joe Sacco's work wouldn't convey the messages he wants to convery if I couldn't follow the narrative he is unfurling, Jaime Hernandez's work would be just pretty pictures without narrative clarity because so much of his work is about the accretion of actions and words in the character's lives. But with a poetic narrative, clarity will often lead to cliché and obviousness. One thing I love about Warren Craghead's work and in particular his "How to Be Everywhere" is how it lacks a certain narrative clarity. I don't always "get" everything, but it keeps me reading and thinking and rediscovering. To me, that is what is lacking from The Whale, but which is so successful in Koch's shorter works.
But, regardless of this shortcoming, the images are great, the book is a nice object, and Koch is a talented creator, one whose talents I am certainly a bit jealous of. I'll keep my eye out for more of her work, as she is working in an underutilized vein of comics. I know you'll be able to see some of her work, including the cover, in the upcoming issue of Secret Prison and she's also in the latest Mome (#20), in a shorter form that one hopes will showcase her talents to a larger audience (I haven't seen the issue yet, unfortunately).
FYI: Some short comics have been going up irregularly at the Gaze Books site. The most recent one is a one page piece from Koch. You can also buy some of her recent minicomics at her site and browse some of her other work.
Addendum: Only after writing this did it occur to me that the story could be autobiographical… though I hope not.
— December 6th, 2010
Newer post: Best Webcomics of 2010
Older post: Points de vue
Tag: comics poetry
Tag: narration
Tag: subtlety

redpajama_set_name: RedPajamaCommonCrawl


Fethiye is a city in the Muğla Province, in the Aegean region of Turkey, and is one of Turkey's most popular tourist areas.
Modern-day Fethiye is located on the site of the ancient city of Telmessos, the ruins of which can still be found around the city.
A Lycian legend tells that the origin of the name Telmessos is from the Greek God Apollo, who fell in love with the youngest daughter of the King of Phoenicia. Disguising himself as a small dog, he earns the love of the shy daughter. He then returns as a handsome man and they have a son together, who they name 'Telmessos' (meaning the land of lights).
The city was part of the Persian Empire in 547 BC and saw many rulers and wars before eventually falling to the Turks in the late 12th or early 13th century. It became part of the Ottoman Empire in 1424.
The town grew significantly in the 19th century and had a large Greek population. However, the population exchange between Greece and Turkey in 1923 saw the Greeks inhabitants sent back to Greece, and the town was resettled by Turks from Greece. At the nearby village of Kayakoy, formerly Levissi, the abandoned Greek Orthodox Church and town are still standing.
In 1934, Mustafa Kemal Ataturk renamed the then called village Meğri to 'Fethiye' in honor of Fethi Bey, one of the first pilots of the Ottoman Air Force. The Şehit Fethi Bey İlköğretim Okulu Elementary School was named after him and in the second half of the 20th century a memorial statue was also erected, which was recently moved to the newly built Şehit Fethi Bey Park.
Next Post Stormy Sunsets in Fethiye or something else?


Duration: 2 mins, 5 sec.
The cantata 'Through the fire' was composed with financial assistance from Arts Victoria through its Artist in Community program.
Score: Voice of Australia : medium to low / [compiled by] David Miller, Wendy Dixon, Linda Foulsham.
Score: Voice of Australia : medium to high / [compiled by] David Miller, Wendy Dixon, Linda Foulsham.


text:
KAS 2019 Prelims Questions from Kerala History Solutions
0 0 Thursday, 19 March 2020 Edit this post
Kerala History topic is really important for Kerala Administrative Service (KAS) Exam. Total 10 questions were asked from Kerala History topic. The Answers and Related information are given below.
Kerala History topic is really important for Kerala Administrative Service (KAS) Exam. Total 10 questions were asked from Kerala History topic. The Answers and Related information are given below. A detailed syllabus for Kerala History is available in our website. You can subscribe our Youtube channel for Free KAS and Other PSC Classes. All history class videos are available there.
011. Which among the following is not a work of Pandit Karuppan?
(A) Anandasutram
(B) Lankamardanam
(C) Sthothramandaaram .
(D) Acharabhooshanam
012. Consider the following pairs:
Organization Founder
1. Vidyaposhini Sahodaran Ayyappan
2. Ananda Maha Sabha Vagbhadananda
Which of the pairs given above is/are correctly matched?
(A) 1 only .
(B) 2 only .
(C) Both 1 and 2
(D) Neither 1 or 2
013. Consider the following statements:
1. She was nominated to Cochin legislative assembly to advise about the Namboothiri Bili..
2. She was an elected member of Malabar District Board
3. She was related with Paliyam Satyagraha
4. She wrote the book 'Akalathiruttu'.
Which among the above statement/statements regarding Arya Pallom is/are correct?
(B) 1 and 2 only '
(C) 1, 2 and 3 only
(D) All of the above
014. With reference to the Cochin Nair Act of 1937-38, consider the following statements:
1. It abolished Marumakkathayam and joint families.
2. It prohibited the marriage of a female less than 16 years of age and male less than 21 years of age.
3. It also prohibited the practice of polygamy.
Which of the statement/statements given above is/are correct?
(A) 1 only
(B) 2 only
(C) 3 only
015. Name the former Chief Minister of Kerala who got opportunity to become member of Cochin Praja Mandal, Thiru-Kochi, Kerala Legislative Assemblies and Rajya Sabha.
(A) EMS Namboothiripad
(B) R. Sankar
(C) C. Achutha Menon
(D) K. Karunakaran
016. The Kerala Panchayat Raj Bill 1994 was passed by the assembly during the tenure of which Minister for Local Administration:
(A) M.K. Munir
(B) C.T. Ahammadali
(C) V.J. Thankappan
(D). K. Balakrishna Pillai
017. Regarding the second coalition ministry of EMS Namboothiripad, consider the following: statements:
1. The Ministry took office in the year 1966.
2. It consisted of CPI(M), CPI, the Muslim League, the RSP, the Karshaka Thozhilali Party and the Kerala Socialist Party.
3. C.H. Muhammed Koya was the Minister for Education.
(A) 1 and 2
(B) 1 and 3
(C) 2 and 3
(D) None of the above
018. The person who resigned from the Aikya Kerala Committee with the belief that State headed by a Rajapramukh will not be helpful to the formation of a democratic State.
(A) K.P. Kesava Menon
(B) K. Kelappan
(C) T. Prakasam
(D) T.K. Madhavan
019. Which among the following political parties participated in the Vimochana Samarar
(A) PSP
(B) RSP.
(C) None of the above
(D) Both of the above
020. Name the first MLA who lost the seat as a result of a court order.
(A) Bhargavi Thankappan
(B) M. Umesh Rao
(C) Rosamma Chacko
(D) Rosamma Punnose
[post_ads_2]
KAS Kerala History Prelims Questions Previous Question Paper
Kerala Administrative Service (KAS) Online Class Study Notes Tests | KAS Insights: KAS 2019 Prelims Questions from Kerala History Solutions
https://www.kasinsights.in/2020/03/kas-2019-prelims-questions-from-kerala.html


text:
Make the Sudan an Offer It Can't Refuse
This article appeared in: Vol. VIII, Number 3 - Summer 2008
efore the full extent of genocide comes to light, little chance exists that a nation in a position to intervene will do so, especially if what is happening is peripheral to its national interests and/or it is engaged in a protracted struggle elsewhere. Genocide is usually beyond the reach of practical intervention because it may be sheltered or accomplished by a military near-peer, or—as in Cambodia 30 years ago or the Congo now—because of the dispersal of individual atrocities over vast and inaccessible terrain. Even when relatively easy, intervention is rare.
Despite almost a million and a half bombing sorties flown against Germany during the Second World War, many of which targeted road and rail, the United States and Britain failed for lack of trying to destroy the system of transport that fed the gas chambers and crematoria. Thirty-five years later, America failed despite its unquestioned naval supremacy to protect the Vietnamese Boat People. That we and our two allies capable of projecting power, France and Britain, are now distracted and divided by the wars in the Middle East, is unfortunate for Darfur.
The genocide there is thus an unattended stepchild left to well-meaning philanthropies and governments that further sap the possibility of decisive action by proposing delicate measures of relief and equally fragile diplomacy. Blankets are necessary, but they will not stop the razing of villages. Even should China be embarrassed, it might not be sufficiently so to protest roughly to the Sudan, which on account of China's embarrassment is not guaranteed to terminate its air raids or its support of the Janjaweed.
As the Sudan brazenly defies, if not the world's will, then, its wishes, and the death toll closes upon half a million, the pity is that the people of Darfur can in fact be saved. In concert with our allies or entirely alone, we have the military potential to accomplish this at little or no cost to anyone except the Sudanese government, which itself would pay only in the currency of unrealized aggrandizement.
The multinational troops in Darfur have neither the training nor the organization nor the mobility adequately to defend the population. Seventy-eight countries, each with its own problems, procedures, and rules of engagement, are represented in what is less a rescue mission than a camping trip to the Tower of Babel. A possibly influential force is developing in Chad, where the E.U., soon to be supplemented by Russian helicopters, will deploy weakly to defend a line drawn across largely empty desert. But, for the sake of those who face slaughter on the other side, why not cross that line? Nations hesitate to violate sovereignty because doing so is a matter of immense consequence and gravity. Then again, so is genocide.
Darfur is physically distant from the Sudan's heartland and sources of military power. Every inch of the 600 miles of barren territory between Khartoum and the killing grounds is an opportunity for a reprieve commanded by American air power—with not a boot on the ground. The Sudanese military in Darfur can be trapped without sustenance, to wither or retreat as reinforcements are kept out. And the Janjaweed can be denied support by severing the few extenuated routes of supply.
The first requirement of a cordon sanitaire, however, would be to cut all air links, which would require carrier air strikes to destroy the Sudanese air force's 51 combat aircraft, 25 transports, and 44 helicopters; its fuel, munitions, and maintenance facilities; and the few runways capable of supporting heavy transports and fighters. Were Chad to approve a small expeditionary force of U.S. A-10s, which it probably would, just a few of these could closely suppress remnant Sudanese armor and check any force of the Janjaweed sufficiently concentrated to overcome local means of self-defense.
Moreover, none of this would prove necessary were the United States willing to go further yet and threaten or accomplish the destruction of the Sudanese regime's means of power over a country pulled apart centrifugally by multiple secessions. One needn't be squeamish about such a proposition. It pertains to a government that has long massacred hundreds of thousands of its "own" people in its South and West, supported international terrorism, and menaced most of its neighbors. The precise targeting of a substantial portion of its 1,200 armored vehicles and 1,100 artillery pieces, its telecom exchanges, microwave towers, uplinks and downlinks, its dozen small naval vessels, its aircraft, runways, munitions, military headquarters, logistical stores, security ministries, and presidential residences would be only a few days' work for long-range bombers dispatched from remote bases, and the planes of two carrier task forces hastened to the Red Sea.
Which would the regime in the Sudan prefer? To be annihilated, or to discontinue its campaign of mass murder? Taking into account the air defenses, distances, and the ranges, numbers, and capacities of our (and perhaps French and British) aircraft, this is a choice to which the Sudan can be brought. Given its record, few nations would come to its aid with other than a pro forma whimper, and given the geography and the air and naval balance, no nation could. Though repressive dictatorships might protest, and China determine to hurry the formation of the blue-water navy it is already building, little else would change except for the better.
This is especially so because only in the worst case would a military strike actually be necessary. One of the chief attractions of such an initiative is that, if properly directed, it could, one way or another, military strike or not, accomplish its aims. They are, first, to stop the mass killings and dislocations; and, second, to pressure the Sudan into negotiating settlements in good faith, which it need not do as long as it retains its habitual option of simply murdering the populations it finds troublesome.
The threat itself would likely be enough. If not, then to carry it out in the present circumstances would be honorable, right, and overdue. For these are human lives that in Darfur are senselessly extinguished. There is no soul anywhere more valuable than any of theirs, no child more worth saving than any of theirs. We are able to do so, as we can stand our carriers and pilots at the ready. And why would we not? A whole people, no matter how wretched or obscure, must certainly be worth three-days' ammunition.
A Righteous Wind
The Lincoln-Douglas debates set a bad example for American politics.
Science and Design
Science and Design; The Collapse of Civilization? Science and Design I find much to agree with in Joseph M. Bessette's review of three books arguing for divine design in the universe ("Science and Faith," Spring 2008). It would be nice to have something more solid ...
Civil Rights and the Conservative Movement
What the Right got wrong—and right.
Rich Country, Strong Arms
We ignore China's grand strategy at our peril.
Bearing Witness
By: Wendy E. Long
The life and character of Clarence Thomas.
Man of a Thousand Faces
By: Joseph Tartakovsky
A review of Homer's The Iliad and The Odyssey: A Biography, by Alberto Manguel
The Critic Who Sometimes Exists
Edmund Wilson remains the finest critic American literature has produced; we can only hope for a better.
Our Robed Rulers
By: James R. Stoner, Jr.
Has the science of politics improved since the American founders wrote the Constitution?
By: Thomas E. Schneider
The central problem in politics - the theological-political problem - reduced to 1st amendment jurisprudence.
Will the Real Liberal Please Stand Up?
By: Amity Shlaes
Brink Lindsey attempts to recover that good liberalism.
By: Paul A. Rahe
A review of The Case for Greatness: Honorable Ambition and Its Critics, by Rober Faulkner
Nixon's the One
By: John J. Pitney, Jr.
Nixon's influence on the way we practice politics today.
What Howe Hath Wrought
By: Christopher Levenick
Reviewing a new history of the United States from 1815 to 1848.
Puritans and Cavaliers
By: Lesley Herrmann
A new translation allows the reader to experience the grandeur of Tolstoy's War and Peace.
Washing Mud from Marble
By: Allen C. Guelzo
Conservative philosophy must do better at vindicating America's greatest president.
Beyond the Nation State
By: John Fonte
The present E.U. philosophical framework is, ultimately, incompatible with liberal democracy.


text:
Investment focus
Offering & returns
Unique capabilities
Master structure
Founders / Sponsors
Financial administrator
Auditors & Lawyers
The business idea
The core values
Creating Value.
Delivering Results.
Invest. Ignite.
Let's seize opportunity, at the right moment, right on time.
Let's empower real estate to play its pillar role, once again.
Let's carry Beirut's legacy forward with the ultimate capital structure.
The real estate sector is a major pillar of the Lebanese Economy and a large contributor to the GDP. The sector withstood wars, economic crisis, oil price declines but always came out relatively unblemished.
Since the beginning of the decade, the Lebanese real estate sector has been witnessing a significant shift in its market dynamics due to: Regional turmoil and local instability that have reduced the attractiveness of Beirut's apartments and created a shift in end-user demand to smaller sized units.
Armed with sound rationale and veteran leadership, Legacy One identifies a path of least resistance towards arriving at an unparalleled choice of bespoke apartments....Read More
Legacy One is structured in such a way as to complete the acquisition of distressed properties and enable to offer strong return on investment (ROI) for project stakeholders....Read More
Legacy One, in its offering, uses a combination of equity and bonds that allow various investors, local and foreign, to choose what best suits their needs....Read More
No one has ever attempted a coalition of forces of such potency as Legacy One did, driving an irresistible narrative by combining unprecedented Power of Scale with Power of Confidence and Power of Choice....Read More
Lucid Investment Bank– a bank regulated and licensed by the Central Bank of Lebanon and listed on the list of banks under number 142 – in its capacity as Lead Placement Agent of Legacy One, ...Read More
Namir Cortas
Mr. Cortas started his career in New York with Deloitte, where he qualified as a Certified Public Accountant. He then moved to the UK for 17 years, working in finance and consultancy in construction and real estate. In 1997, he returned to Lebanon and developed several projects in Beirut Central District. Recently, he oriented his development activities towards middle-income housing....Read More
Massaad Fares
Investment Committee Member
Mr. Fares brings more than 38 years of experience in real estate, covering several facets of the industry: development, marketing, sales and finance. He has worked in San Francisco, New York, Marbella, the Gulf and Beirut, where he returned in 1996 and founded Prime Consult. Mr. Fares has been on the forefront of the Lebanese real estate industry and has relentlessly worked towards its increased regulation and institutionalization....Read More
Legacy Central brings together leading, career figures to create a top notch executive team entrusted to not only oversee the execution of key milestones but also drive a Corporate Social Responsibility agenda worthy of the scale of the project.
Combining 70 years of expertise between them, seasoned real estate icons, Massaad Fares, and Namir Cortas, and in collaboration with Lucid Investment Bank SAL, established LC, with all the bespoke strategy, tools, innovations and incentives to drive growth in these properties and ultimately the entire Lebanese real estate sector.
Checkout our MediaLink
info@legacyone.co
Copyright ©2020 – Legacy One SAL – All rights reserved


Synopsis: Watch The Listener online free. In The Listener Putlocker Full Episodes, Toby Logan is a highly skilled paramedic with a secret – he can read minds. Toby never really knew his parents and grew up in foster care, this coupled with his secret, which he shares with no one, has made him a bit of a loner. Until now, Toby has kept his ability hidden, exploring its possibilities only with his long time mentor and confidante Dr. Ray Mercer.


text:
Q: how to split a series in pandas based on another I have two series in python pandas.
One from values within a file called values.csv. It looks like this:
time, value
0, 10312435
9, 45924523
11, 43423434
20, 42343552
...

Another one is called breaks.csv and it looks like this:
time
5
18
...

Problem: I would like to split the values.csv into separate frames based on the values in breaks.csv.
In the example above the first breakpoint would be 5, resulting in a file or set containing all entries within time \in [0, 5], therefore only the value 0, 10312435. The second breakpoint is 18, therefore the second batch of values should be within (5, 18] i.e. 9, 45924523 and 11, 43423434 and so forth.
Is something like this possible in pandas (or maybe some other easy-to-use python package)?

A: You can first form bins from breaks.time and then assign categories to values.time with these bins using pd.cut:
import numpy as np

# intervals to fall into
bins = [-np.inf, *breaks.time, +np.inf]

# distinct labels of 0..N-1
labels = np.arange(len(bins) - 1)

# form a new column in `values` with assigned categories
values["cats"] = pd.cut(values.time, bins=bins, labels=labels)

At this point values looks like:
>>> values

   time     value cats
0     0  10312435    0
1     9  45924523    1
2    11  43423434    1
3    20  42343552    2

Now we can group by cats and, for example, form a list of dataframes:
# no need for `cats` column anymore, so we drop it when putting in
frames_list = [frame.drop(columns="cats")
               for _, frame in values.groupby("cats")[["time", "value"]]]

We can access the frames as
>>> frames_list[0]

   time     value
0     0  10312435

>>> frames_list[1]

   time     value
1     9  45924523
2    11  43423434

>>> frames_list[2]

   time     value
3    20  42343552

A: I came up with the following, based on Pandas split DataFrame by column value
sim_dist_right = pandas.read_csv('sim/dist_right.csv', comment='#')
sim_round_indicator = pandas.read_csv('sim/round_indicator.csv', comment='#')

round_list = []
for index, row in sim_round_indicator.iterrows():
    print("splitting at " + str(row['time']))
    df_sep = sim_dist_right[sim_dist_right['time'] < row['time']]

    round_list.append(df_sep)
    print("separated a batch of " + str(len(df_sep)) + " elements")

    df_over = sim_dist_right[sim_dist_right['time'] >= row['time']]
    print(str(len(df_over)) + " elements over")

    sim_dist_right = df_over

print("splitted values into " + str(len(round_list)) + " batches")


This longitudinal study of mortality among the elderly (65 and over) in China used a large representative sample to examine the association between mortality and three different socio-economic status (SES) indicators—education, economic independence, and household income per head. The results, while varying depending on the measures used, show that there is strong evidence of a negative association between SES and overall mortality. A cause-specific analysis shows that SES is more strongly related to the reduction of mortality from more preventable causes, such as circulatory disease and respiratory disease, than from less preventable causes such as cancer. We also investigated the effects of three sets of factors that may mediate the observed SES–mortality relationship: support networks, health-related behaviours, and access to health care. The results show that for both overall and cause-specific mortality, access to health care is the most important of the three.


text:
Abbey of Bury St. Edmund's
The first religious foundation there was established by Sigebert, King of the East Angles, who resigned his crown to found a monastery about 537. It became celebrated when the relics of the martyred King Edmund were brought there in 903, after which time the town, till then called Boedericsworth, became known as St. Edmund's Town or St. Edmund's Bury. During the reign of Canute (1016-35) the secular canons were replaced by Benedictines. In 1095 there was a solemn translation of the saint's relics to the new church built by Abbot Baldwin. The shrine grew in fame, wealth, and magnificence till the monastery was considered second only to Glastonbury, but in 1465 a terrible fire caused irreparable loss to the church, from which it never recovered. The abbot had a seat in Parliament and possessed full jurisdiction over the town and neighbourhood. There was accomodation for eighty monks, but more than two hundred persons resided in the Abbey. At the dissolution, the revenues were valued at £2,366, equivalent to more than £20,000 in present money. It was in the abbey church that the memorable meeting of barons took place in the year 1214, when Cardinal Langton, Archbishop of Canterbury, standing at the high altar, read out the proposed Charter of Liberties, which in the form of Magna Charta was signed by King John in 1215. The abbey was finally dissolved by Henry VIII in 1539, when the abbey church and the monastic buildings were in large measure destroyed, the gateway, an ancient bridge, and other scattered ruins alone now remaining. The fate of the saint's relics has never been decided. According to one tradition, they were abstracted by Prince Louis of France in 1217. Relics purporting to be those of the saint were long preserved at Toulouse, until in 1901, Cardinal Vaughan, Archbishop of Westminster, obtained leave to translate them to England. Doubts having been thrown on the authenticity of the relics, a commission of investigation was appointed by the Holy See, but no report has been published. Among the famous monks of the Abbey were Abbot Sampson and his chronicler Jocelin of Brakelond (d. 1211); John Boston de Bury, author and bibliographer (d. 1430); John Lydgate, poet (d. 1446), and Byfield who was burnt for heresy in 1530.
THOMPSON, Records of St. Edmund's; DUGDALE, Monasticism (London, 1821), III, 98-176; JOCELINI DE BRAKELONDA, De rebus gestis Samsonis Abbatis (Camden Society, 1840); TYMMS, Handbook of Bury St. Edmunds (8th ed., 1905). See also CARLYLE, Past and Present (1843).
EDWIN BURTON