text:
Best of the Panthers in 2003 season
View photos from Carolina's memorable 2003 season as the Panthers won the NFC Championship and advanced to Super Bowl XXXVIII.
Carolina Panthers' Steve Smith (89) reacts after his game-winning five-yard touchdown catch as Tampa Bay Buccaneers players Corey Ivy (35) and Shelton Quarles (53) stand by during the final minutes of the fourth quarter of the Panthers' 27-24 win in Charlotte, N.C., Sunday, Nov. 9, 2003. (AP Photo/Rick Havner)
Carolina Panthers receiver Muhsin Muhammad celebrates a fourth quarter touchdown against the New England Patriots in Super Bowl XXXVIII in Houston, Sunday, Feb. 1, 2004. (AP Photo/Mark J. Terrill)
Carolina Panthers' Ricky Proehl celebrates his 5-yard touchdown catch in the second quarter against the Atlanta Falcons Sunday, Sept. 28, 2003, in Charlotte. (AP Photo/Chuck Burton)
Carolina Panthers linebacker Dan Morgan (55) prepares to blitz during a 32-29 loss to the New England Patriots in Super Bowl XXXVIII on February 1, 2004 at Reliant Stadium in Houston, Texas. (AP Photo/Kevin Terrell)
Carolina Panthers wide receiver Muhsin Muhammad (87) catches an 85-yard pass reception during a 32-29 loss to the New England Patriots in Super Bowl XXXVIII on February 1, 2004 at Reliant Stadium in Houston, Texas. (AP Photo/Kevin Terrell)
Carolina Panthers running back DeShaun Foster dives into the end zone for a touchdown past New England Patriots safety Rodney Harrison in the fourth quarter of Super Bowl XXXVIII in Houston, Sunday, Feb. 1, 2004. (AP Photo/Mark J. Terrill)
Carolina Panthers wide receiver Steve Smith (89) races upfield with a reception during an NFL game against the Arizona Cardinals in Tempe, Ariz., Dec. 14, 2003. The Panthers defeated the Cardinals 20-17 at Sun Devil Stadium. (AP Photo/NFL Photos/Kevin Terrell)
New England Patriots Tyrone Poole, left, and Richard Seymour, right, attempt to stop Carolina Panthers running back Stephen Davis (48) during the third quarter of Super Bowl XXXVIII in Houston, Sunday Feb. 1, 2004. (AP Photo/Morry Gash)
Carolina Panthers head coach John Fox hugs running back Stephen Davis after defeating the Philadelphia Eagles 14-3 in the NFC Championship game in Philadelphia Sunday, Jan. 18, 2004. (AP Photo/Bill Kostroun)
Carolina Panthers running back DeShaun Foster (20) scores a touchdown against the defense of Philadelphia Eagles strong safety Michael Lewis (32) and linebacker Nate Wayne (54) during the third quarter of the NFC Championship game in Philadelphia Sunday, Jan. 18, 2004. (AP Photo/Dave Martin)
Carolina Panthers cornerback Ricky Manning (24) runs back an interception as Philadelphia Eagles Hank Fraley (63) pursues during the third quarter of the NFC Championship game in Philadelphia Sunday, Jan. 18, 2004. (AP Photo/Chuck Burton)
Carolina Panthers quarterback Jake Delhomme (17) warms up while running back Stephen Davis (48) looks on during the Patriots' practice in Reliant Stadium in Houston Saturday, Jan. 31, 2004. The Panthers meet the New England Patriots for Super Bowl XXXVIII, Sunday, Feb. 1. (AP Photo/Michael Conroy)
Carolina Panthers cornerback Ricky Manning, right, intercepts a pass intended for Philadelphia Eagles wide recieverJames Thrash (80) during the third quarter of the NFC Championship game in Philadelphia Sunday, Jan. 18, 2004. The Panthers Mike MInter (30 and linebacker Dan Morgan (55) are in on the play. (AP Photo/Bill Kostroun)
Carolina Panthers' Ricky Manning Jr. taunts the crowd after they defeated the Philadelphia Eagles 14-3 during the NFC championship game Sunday, Jan. 18, 2004, in Philadelphia. Manning picked off three passes by Donovan McNabb and helped put the Carolina Panthers in their first Super Bowl. (AP Photo/Chuck Burton)
Carolina Panthers quarterback Jake Delhomme (17) throws a pass on the run during an NFC Divisional Playoff Game against the St. Louis Rams. The Panthers defeated the Rams 29-23 in overtime on January 10, 2004 in St. Louis, Missouri. (AP Photo/Kevin Terrell)
Philadelphia Eagles quarterback Donovan McNabb is hit by Carolina Panthers linebacker Greg Favors in the second quarter of the NFC Championship game in Philadelphia Sunday, Jan. 18, 2004. (AP Photo/Chuck Burton)
Carolina Panthers fans crowd the square at Trade and Tryon Streets in Uptown during a pep rally for the team in Charlotte, N.C. Friday, Jan. 16, 2004. The Panthers will play the Philadelphia Eagles in the NFC Championship game Sunday in Philadelphia. (AP Photo/Erik Perel)
Carolina Panthers wide receiver wide receiver Steve Smith (89) catches a pass during an NFC Divisional Playoff Game against the St. Louis Rams. The Panthers defeated the Rams 29-23 in double overtime on January 10, 2004 in St. Louis, Missouri. (AP Photo/Kevin Terrell)
Carolina Panthers defensive ends Julius Peppers, left, and Micheal Rucker watch a field goal attempt during the first overtime period against the St. Louis Rams in the NFC divisional playoff game Saturday, Jan. 10, 2004, in St. Louis. (AP Photo/Charles Rex Arbogast)
Carolina Panthers running back Stephen Davis carries the ball against the St. Louis Rams during the NFC divisional playoff game Saturday, Jan. 10, 2004, in St. Louis. (AP Photo/Charles Rex Arbogast)
Carolina Panthers running back Stephen Davis (48) heads upfield against the New England Patriots during Super Bowl XXXVIII on February 1, 2004 at Reliant Stadium in Houston, Texas. The Patriots defeated the Panthers 32-29. (AP Photo/Kevin Terrell)
New York Giants quarterback Jesse Palmer is grabbed by Carolina Panthers' Julius Peppers during the second quarter at Giants Stadium in East Rutherford, N.J., Sunday, Dec. 28, 2003. (AP Photo/Ed Betz)
Carolina Panthers running back DeShaun Foster (20) heads upfield against the New England Patriots during Super Bowl XXXVIII on February 1, 2004 at Reliant Stadium in Houston, Texas. The Patriots defeated the Panthers 32-29. (AP Photo/Kevin Terrell)
Carolina Panthers players take the field before taking on the New England Patriots in Super Bowl XXXVIII on February 1, 2004 at Reliant Stadium in Houston, Texas. The Patriots defeated the Panthers a 32-29. (AP Photo/Kevin Terrell)
Carolina Panthers running back DeShaun Foster (20) heads upfield during an NFL game against the Arizona Cardinals. The Panthers defeated the Cardinals 20-17 at Sun Devil Stadium in Tempe, Arizona on December 14, 2003. (AP Photo/Kevin Terrell)
Carolina Panthers' Muhsin Muhammad tapes Super Bowl XXXVIII media day festivities at Reliant Stadium in Houston, Tuesday Jan. 27, 2004. (AP Photo/Eric Gay)
Members of the Carolina Panthers bench celebrate following their 29-23 double overtime win against the St. Louis Rams during their NFC playoff game in St. Louis Saturday, Jan. 10, 2004. (AP Photo/James A. Finley)
Carolina Panthers Steve Smith, top, catches a pass over New England Patriots Tyrone Poole, rear, that set up a touchdown run by DeShaun Foster in the fourth quarter of Super Bowl XXXVIII in Houston, Sunday Feb. 1, 2004. Patriots teammate Eugene Wilson, left front, looks on. AP Photo/Morry Gash)
Carolina Panthers Muhsin Muhammad (87) looks back at New England Patriots' Eugene Wilson (26) after pulling down a pass from quarterback Jake Delhomme to score an 85-yard touchdown in the fourth quarter of Super Bowl XXXVIII in Houston, Sunday Feb. 1, 2004. Patriots coach Bill Belichick, rear right, looks on during the play. (AP Photo/Morry Gash)
Carolina Panthers' Julius Peppers (90) and DeShaun Foster celebrate victory after they defeated the Philadelphia Eagles 14-3 during the NFC championship game Sunday, Jan. 18, 2004, in Philadelphia. (AP Photo/Chuck Burton)
Carolina Panthers' Will Witherspoon (54) sacks Philadelphia Eagles' quarterback Donovan McNabb in the first quarter during the NFC championship game Sunday, Jan. 18, 2004, in Philadelphia. (AP Photo/Bill Kostroun)
Carolina Panthers' Julius Peppers answers questions during media day, Tuesday, Jan. 27, 2004 at Reliant Stadium in Houston. Super Bowl XXXVIII will be played Sunday, Feb. 1, 2004 between the New England Patriots and the Carolina Panthers. (AP Photo/Michael Conroy)
Carolina Panthers wide receiver Steve Smith (89) makes a touchdown catch with Houston Texans defender Jamie Sharper (55) in pursuit, during the first quarter, Sunday, Nov. 2, 2003, in Houston. (AP Photo/David J. Phillip)
Carolina Panthers quarterback Jake Delhomme talks to his mom after defeating the Philadelphia Eagles 14-3 in the NFC Championship game in Philadelphia, in this Jan. 18, 2004 photo. (AP Photo/Dave Martin)
Carolina Panthers quarterback Jake Delhomme celebrates after defeating the Philadelphia Eagles 14-3 in the NFC Championship game in Philadelphia Sunday, Jan. 18, 2004. (AP Photo/Dave Martin)
Carolina Panthers fullback Brad Hoover (45) scores on a 7-yard run during during an NFC Divisional Playoff Game against the St. Louis Rams. The Panthers defeated the Rams 29-23 in overtime on January 10, 2004 in St. Louis, Missouri. (AP Photo/Kevin Terrell)
Carolina Panthers safety Mike Minter signals against the Philadelphia Eagles during the NFC championship game Sunday, Jan. 18, 2004, in Philadelphia. (AP Photo/George Widman)
Dallas Cowboys' Richie Anderson (20) is up-ended by Carolina Panthers' Will Witherspoon (54) in the fourth quarter of the Panthers' 29-10 win at Ericsson Stadium in Charlotte, N.C., Saturday, Jan. 3, 2004. (AP Photo/Tony Gutierrez)
Carolina Panthers quarterback Jake Delhomme (17) drops back to pass against the St. Louis Rams during a 2003 NFC Divisional Playoff Game. The Panthers defeated the Rams 29-23 in overtime on January 10, 2004. (AP Photo/Kevin Terrell)
Carolina Panthers coach John Fox reacts during the fourth quarter against the New York Giants Sunday, Dec. 28, 2003, at Giants Stadium in East Rutherford, N.J. The Panthers beat the Giants, 37-24. (AP Photo/Bill Kostroun)
Carolina Panthers wide receiver Steve Smith heads to the end zone to score the game-winning touchdown in double overtime against the St. Louis Rams during the NFC divisional playoff game Saturday, Jan. 10, 2004, in St. Louis. (AP Photo/Charles Rex Arbogast)
Carolina Panthers' Kris Magnum, left, congratulates Muhsin Muhammad (87) after he scored a second quarter touchdown against the Philadelphia Eagles during the NFC championship game Sunday, Jan. 18, 2004, in Philadelphia. (AP Photo/Miles Kennedy)
Carolina Panthers running back Nick Goings (37) heads upfield during an NFC Divisional Playoff Game against the St. Louis Rams. The Panthers defeated the Rams 29-23 in overtime on January 10, 2004 in St. Louis, Missouri. (AP Photo/Kevin Terrell)
Carolina Panthers wide receiver Steve Smith looks skyward after catching the winning touchdown pass on the first play of the second overtime period against the St Louis Rams in and NFC playoff game in St. Louis Saturday, Jan. 10, 2004. The Panthers beat the Rams, 29-23. (AP Photo/Charles Rex Arbogast)
Carolina Panthers running back Stephen Davis carries the ball against the St. Louis Rams during the NFC divisional playoff game Saturday, Jan. 10, 2004, in St. Louis. (AP Photo/Bill Boyce)
Carolina Panthers quarterback Jake Delhomme (17) celebrates as Jacksonville Jaguars' Danny Clark (54) looks on after Delhomme threw a 12-yard touchdown pass with 16 seconds left in the Panthers' 24-23 win in Charlotte, N.C., Sunday Sept. 7, 2003. (AP Photo/Rusty Burroughs)
Carolina Panthers' Mike Rucker (93) is tackled by Philadelphia Eagles' Jon Ritchie (48) after an interception in the first quarter of the Eagles' 25-16 win in Charlotte, N.C., Sunday Nov. 30, 2003. McNabb overcame his first interception in six games to lead the Philadelphia Eagles to their seventh consecutive victory.(AP Photo/Chuck Burton)
Carolina Panthers head coach John Fox, center, congratulates defensive end Julius Peppers (90) after Peppers' interception in the fourth quarter of the Panthers' 29-10 win over the Dallas Cowboys at Ericsson Stadium in Charlotte, N.C., Saturday Jan. 3, 2004. (AP Photo/Mark Humphrey)
Carolina Panthers running back Stephen Davis carries the ball during the NFC Wild Card game against the Dallas Cowboys in this Jan. 3, 2004 file photo, in Charlotte, N.C. (AP Photo/Tony Gutierrez)
Carolina Panthers head coach John Fox, center, is dunked by his players after the Panthers defeated the Dallas Cowboys, 29-10, at Ericsson Stadium in Charlotte, N.C., Saturday, Jan. 3, 2004. (AP Photo/Tony Gutierrez)
Carolina Panthers linebackers coach Sam Mills leaves the field after the Panthers' game against the Washington Redskins in Charlotte, N.C., Nov. 16, 2003. (AP Photo/Rick Havner)
Carolina Panthers wide receiver Steve Smith tries to stay inbounds during the NFC Wild Card game against the Dallas Cowboys in this Jan. 3, 2004, in Charlotte, N.C (AP Photo/Mark Humphrey)
The celebration begins as Carolina Panthers' Todd Sauerbrun (10) John Kasay (4) and Kris Mangum (86) enjoy their 23-20 victory over the New Orleans Saints, Sunday, Oct. 26, 2003, in the Louisiana Superdome in New Orleans. Kasay kicked the game-winning field goal in overtime. Leave the field for the Saints is Jay Bellamy (20). Holding for Kasay was punter Todd Souerbrun (10). (AP Photo/Andrew Cohoon)
Carolina Panthers' Rod Smart (32) runs past cheering teammates for a 100-yard kick return for a touchdown during the second quarter against the New Orleans Saints in Charlotte, N.C., Sunday Oct. 5, 2003. (AP Photo/Rick Havner)
Carolina Panthers kicker John Kasay points to fans as he leaves the field after kicking a 43-yard field goal in overtime to defeat the Indianapolis Colts 23-20 in Indianapolis, Sunday, Oct. 12, 2003. (AP Photo/Tom Strattman)
Carolina Panthers quarterbacks Jake Delhomme (17); Chris Weinke (16); Randy Fasani (12); and Rodney Peete (9), prepare to drop back during a drill at the team's training camp in Spartanburg, S.C., Monday, July 28, 2003. (AP Photo/Chuck Burton)
Carolina Panthers' Ricky Proehl (81) catches a 12-yard touchdown pass as Jacksonville Jaguars' Jason Craft (29) defends with 16 seconds left in the fourth quarter in the Panthers' 24-23 win in Charlotte, N.C., Sunday, Sept. 7, 2003. (AP Photo/Mike McCarn)
Winners of the Silver Season Team, presented by Coca-Cola
Check out the members of the Silver Season Team, presented by Coca-Cola, as voted upon by the fans.
View photos from Carolina's 11-5 campaign in 2017.
View photos from Carolina's 6-10 campaign in 2016.
Best of the Panthers in 2014
View photos of the Panthers from the 2014 season when Carolina became the first team to win the NFC South in consecutive seasons.
Take a look at some of the best pictures from 2013 when Carolina won the NFC South division.
Photos from Carolina's 2-14 season in 2010.
View some of the top images from Carolina's 8-8 campaign in 2009.
View photos from Carolina's 12-4 season in 2008.
View photos of the best of the Panthers in the 2005 season, a year where Carolina advanced to the NFC Championship game.
View photos of the Panthers from the 2004 season.
View photos from the Panthers 2002 season, the first with coach John Fox.
View photos from the Panthers 2001 season.


Yikes! What's under that log?
Where: 929 E. Mennonite Road, just past Sunny Lake Park and up the hill on the left.
Join our own Dr. James Tomko for a fun afternoon of discovering Reptiles and Amphibians that are found under logs and rocks, in ponds and creeks in our area. A program that is fun for all ages!
OTTERS & BEAVERS – Around the campfire!
Where: 929 E. Mennonite Road, just past Sunny Lake Park and up the hill on your left.
Join local author-illustrator and read-aloud extraordinaire, Eric VanRaepenbusch for a fun and interactive story time. He will share everything he has learned about otters and beavers plus read some of his favorite picture books that feature these amazing animals. If you have seen one of Eric's story times you know there will be singing, dancing, and laughing too!
RAPTORS, Lords of the sky!
Where: 929 E. Mennonite Road, just past Sunny Lake Road and up the hill on your left.
Award-winning naturalist and singer Foster Brown will present his fun facts, high energy, catchy original tunes and stories at the Moebius Nature Center. He will focus on birds of prey native to Northeast Ohio. This will be a family-oriented presentation filled with toe-tapping educational songs, lively storytelling and a live owl named Luna.
MOTHS, Winged jewels of the night!
Where: 929 E. Mennonite Road, just past Sunny Lake Park up the hill and on the left.
Did you know that moths outnumber butterflies by about 20 to 1. Join Naturalist Joe Malmisur to learn how to use black lights and sheets to attract these amazing creatures, and for a chance to observe their beautiful colors, shapes and patterns up close. Bring a flashlight, bug spray and a camera for photos.
Where: 929 E. Mennonite Road, just past Sunny Lake Road up the hill and on your left.
Calling all pucks and fairies alike! Our all FREE magical Midsummer Night's Dream Festival is back for families with children of all ages. Come dressed in your favorite costume - super hero, medieval knight or princess, fairy princess, even a dragon. We'll have a fun evening of crafts (wizard and fairy/princess wands,crowns, Dragons and magical lanterns). Campfire food (hotdogs, chips, veggie sticks, brownies and s'mores) will be served. Enjoy magic bubbles, a toss game, and face painting then stick around for the moon and follow the lights to a hidden treasure. Enjoy an evening with us at the Moebius Nature Center to celebrate the wonderful summer season.
Pond Dipping and Dragonfly Hunting!
Come join us for a wet and wild afternoon of pond dipping. We will dip our nets and see what lives in our pond. Come prepared to get slightly wet, maybe a little muddy and have a lot of fun outside enjoying nature and our pond life!


text:
{-# LANGUAGE RankNTypes, ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell, ViewPatterns, DeriveGeneric #-}
{-|

This analysis identifies functions that are allocators (in the style
of malloc).

An function @f@ is an allocator if it always returns the result of an
allocator or NULL, but must be able to return non-NULL.  Additionally,
none of the returned allocations may *escape* the function.  See the
escape analysis for a precise definition of escaping.

The initial set of allocators is derived from the C standard library
(malloc, calloc).  Support for C++ new allocations will be added.

As a special exception, an allocator may allocate a chunk of memory
using another allocator and then return a pointer to some location
inside of the chunk to the user.  Example:

> void *glp_malloc(int size) {
>   void* ret = malloc(size + 10);
>   return (void*)((char*)ret + 10);
> }

This facilitates allocators that allocate object headers to store
metadata that they do not wish to expose to the user.

-}
module Foreign.Inference.Analysis.Allocator (
  AllocatorSummary,
  identifyAllocators,
  -- * Testing
  allocatorSummaryToTestFormat
  ) where

import GHC.Generics ( Generic )

import Control.Arrow ( (&&&) )
import Control.DeepSeq
import Control.DeepSeq.Generics ( genericRnf )
import Control.Lens ( Getter, Lens', view, (&), (.~), (%~), makeLenses, to )
import Control.Monad ( foldM )
import qualified Data.Foldable as F
import Data.Map ( Map )
import qualified Data.Map as M
import Data.Maybe ( catMaybes, isJust )
import Data.Monoid
import Data.Set ( Set )
import qualified Data.Set as S

import LLVM.Analysis
import LLVM.Analysis.CFG
import LLVM.Analysis.CallGraphSCCTraversal
import LLVM.Analysis.Dataflow

import Foreign.Inference.AnalysisMonad
import Foreign.Inference.Diagnostics
import Foreign.Inference.Interface
import Foreign.Inference.Analysis.Escape
import Foreign.Inference.Analysis.Finalize
import Foreign.Inference.Analysis.IndirectCallResolver
import Foreign.Inference.Analysis.Output
import Foreign.Inference.Internal.FlattenValue

-- import Text.Printf
-- import Debug.Trace
-- debug = flip trace

-- | The summary tracks the functions that return newly allocated values
-- through their normal return value.  It also tracks the output parameters
-- through which newly allocated values are returned.
data SummaryType = ST { _summaryAllocatorFuncs :: Set Function
                      , _summaryAllocatorArgs :: Set Argument
                      }
                      deriving (Generic, Eq, Show)

$(makeLenses ''SummaryType)

instance Monoid SummaryType where
  mempty = ST mempty mempty
  mappend (ST f1 a1) (ST f2 a2) = ST (mappend f1 f2) (mappend a1 a2)

data AllocatorSummary =
  AllocatorSummary { _allocatorSummary :: SummaryType
                   , _allocatorDiagnostics :: Diagnostics
                   , _finalizerSummary :: FinalizerSummary
                   }
  deriving (Generic)

$(makeLenses ''AllocatorSummary)

instance Eq AllocatorSummary where
  (AllocatorSummary s1 _ _) == (AllocatorSummary s2 _ _) = s1 == s2

instance Monoid AllocatorSummary where
  mempty = AllocatorSummary mempty mempty mempty
  mappend (AllocatorSummary s1 d1 f1) (AllocatorSummary s2 d2 f2) =
    AllocatorSummary (mappend s1 s2) (mappend d1 d2) (mappend f1 f2)

instance NFData AllocatorSummary where
  rnf = genericRnf

instance NFData SummaryType where
  rnf = genericRnf

instance HasDiagnostics AllocatorSummary where
  diagnosticLens = allocatorDiagnostics

data AllocatorData =
  AllocatorData { indirectCallSummary :: IndirectCallSummary
                }

-- | This is the dataflow fact.  @allocatorReturnValues@ is the set of values
-- returned through the return instruction.  The values are flattened (and
-- thus phi-free).  The 'Instruction' paired with each value is the return
-- instruction that returned it.
--
-- @allocatorOutValues@ are the values returned through output parameters,
-- along with the Store instruction that returned them.  The Maybe wrapper
-- is used to accommodate transitive out allocations.  If there is a Nothing
-- in the return value set for an 'Argument', that means that the 'Argument'
-- was written to by a transitive output allocation.
--
-- These 'Instruction' tags are required for the escape analysis.  We know
-- that the allocated value escapes through its return slot - that is the
-- point.  The escape analysis needs to be told to ignore this known and
-- expected escape, so we track the responsibe instruction.
data AllocatorInfo =
  AI { _allocatorReturnValues :: Set (Value, Instruction)
     , _allocatorOutValues :: Map Argument (Set (Maybe (Value, Instruction)))
     }
     deriving (Eq, Show)

$(makeLenses ''AllocatorInfo)

type Analysis = AnalysisMonad AllocatorData ()

instance SummarizeModule AllocatorSummary where
  summarizeArgument a (AllocatorSummary (ST _ summ) _ finSumm)
    | not (S.member a summ) = []
    | otherwise =
      case automaticFinalizersForType finSumm (valueType a) of
        [] -> [(PAOutAlloc "free", [])]
        [fin] -> [(PAOutAlloc (identifierAsString (functionName fin)), [])]
        _ -> [(PAOutAlloc "", [])]
  summarizeFunction f (AllocatorSummary (ST summ _) _ finSumm)
    | not (S.member f summ) = []
    | otherwise =
        case automaticFinalizersForType finSumm (functionReturnType f) of
          -- If there is no allocator, assume we just free it...  this
          -- isn't necessarily safe.
          [] -> [(FAAllocator "free", [])]
          [fin] -> [(FAAllocator (identifierAsString (functionName fin)), [])]
          -- There was more than one, can't guess
          _ -> [(FAAllocator "", [])]

identifyAllocators :: forall compositeSummary funcLike . (FuncLike funcLike, HasFunction funcLike, HasCFG funcLike)
                      => DependencySummary
                      -> IndirectCallSummary
                      -> Lens' compositeSummary AllocatorSummary
                      -> Getter compositeSummary EscapeSummary
                      -> Getter compositeSummary FinalizerSummary
                      -> Getter compositeSummary OutputSummary
                      -> ComposableAnalysis compositeSummary funcLike
identifyAllocators ds ics lns escLens finLens outLens =
  composableDependencyAnalysisM runner allocatorAnalysis lns depLens
  where
    runner a = runAnalysis a ds readOnlyData ()
    readOnlyData = AllocatorData ics
    depLens :: Getter compositeSummary (EscapeSummary, (FinalizerSummary, OutputSummary))
    depLens = to (view escLens &&& (view finLens &&& view outLens))

-- | If the function returns a pointer, it is a candidate for an
-- allocator.  We do not concern ourselves with functions that may
-- unwind or call exit on error - these can also be allocators.

-- | If any return slot (return value or output parameter) returns only
-- non-escaping newly-allocated values, that return slot allocates.
allocatorAnalysis :: (FuncLike funcLike, HasFunction funcLike, HasCFG funcLike)
                     => (EscapeSummary, (FinalizerSummary, OutputSummary))
                     -> funcLike
                     -> AllocatorSummary
                     -> Analysis AllocatorSummary
allocatorAnalysis (esumm, (fsumm, outSumm)) funcLike s = do
  res <- dataflow funcLike analysis top
  let AI rvs argRets = dataflowResult res
      s' = s & finalizerSummary .~ fsumm
  s'' <- checkReturnValues esumm f (S.toList rvs) s'
  foldM (checkArgValues esumm) s'' (M.toList argRets)
  where
    f = getFunction funcLike
    analysis = fwdDataflowAnalysis top meet (transfer s outSumm)

top :: AllocatorInfo
top = AI mempty mempty

meet :: AllocatorInfo -> AllocatorInfo -> AllocatorInfo
meet (AI r1 a1) (AI r2 a2) =
  AI (r1 `mappend` r2) (M.unionWith S.union a1 a2)

-- | The transfer function for returns is cumulative since those end
-- execution.  I haven't seen more than one return instruction in a
-- function before, but this code handles it.
--
-- The transfer function for stores overwrites previous values, since the
-- caller sees only the last value stored.  The meet operator still unions.
--
-- Transitive out allocations work just like Stores, except no value needs to
-- be checked and the responsible instruction does not need to be recorded.
transfer :: AllocatorSummary
         -> OutputSummary
         -> AllocatorInfo
         -> Instruction
         -> Analysis AllocatorInfo
transfer s outSumm ai i =
  case i of
    RetInst { retInstValue = Just rv }
      | isPointerType (valueType rv) ->
        let rvs = S.fromList (zip (flattenValue rv) (repeat i))
        in return $! ai & allocatorReturnValues %~ S.union rvs
      | otherwise -> return ai
    StoreInst { storeAddress = (valueContent' -> ArgumentC arg)
              , storeValue = (stripBitcasts -> sv)
              }
      | isOutParam outSumm arg ->
        let rvs = S.fromList $ map Just (zip (flattenValue sv) (repeat i))
        in return $! ai & allocatorOutValues %~ M.insert arg rvs
      | otherwise -> return ai
    CallInst { callFunction = cf, callArguments = (map fst -> args) } ->
      foldM (argumentTransfer s cf) ai (zip [0..] args)
    InvokeInst { invokeFunction = cf, invokeArguments = (map fst -> args) } ->
      foldM (argumentTransfer s cf) ai (zip [0..] args)
    _ -> return ai

argumentTransfer :: AllocatorSummary
                 -> Value
                 -> AllocatorInfo
                 -> (Int, Value)
                 -> Analysis AllocatorInfo
argumentTransfer s cf ai (ix, (valueContent' -> ArgumentC a)) = do
  summ <- lookupArgumentSummaryList s cf ix
  case any isOutAlloc summ of
    False -> return ai
    True -> return $! ai & allocatorOutValues %~ M.insert a (S.singleton Nothing)
argumentTransfer _ _ ai _ = return ai

isOutAlloc :: ParamAnnotation -> Bool
isOutAlloc (PAOutAlloc _) = True
isOutAlloc _ = False

isOutParam :: OutputSummary -> Argument -> Bool
isOutParam s a = PAOut `elem` map fst (summarizeArgument a s)

isPointerType :: Type -> Bool
isPointerType (TypePointer _ _) = True
isPointerType _ = False

-- | The set we are looking at has Maybes.  The 'Nothing' values indicate
-- out-alloc parameters.  There is nothing else to check there because
-- we know those are allocators.  We do need to make sure that we don't
-- completely ignore them in the null check, though.
checkArgValues :: EscapeSummary
               -> AllocatorSummary
               -> (Argument, Set (Maybe (Value, Instruction)))
               -> Analysis AllocatorSummary
checkArgValues esumm summ (a, S.toList -> rvs)
  | null nonNullRvs && not hasOutAlloc = return summ
  | otherwise = do
    valid <- mapM (isAllocatedWithoutEscape esumm summ) nonNullRvs
    case and valid of
      False -> return summ
      True ->
        return $! summ & (allocatorSummary . summaryAllocatorArgs) %~ S.insert a
  where
    hasOutAlloc = any (==Nothing) rvs
    nonNullRvs = filter (mayBeAlloc . fst) (catMaybes rvs)

-- | If the return value is always one of:
--
--  * NULL
--
--  * The result of an allocator (and does not escape)
--
-- then f is an allocator.  If there is a unique finalizer for the
-- same type, associate it with this allocator.
checkReturnValues :: EscapeSummary
                  -> Function
                  -> [(Value, Instruction)]
                  -> AllocatorSummary
                  -> Analysis AllocatorSummary
checkReturnValues esumm f rvs summ
  -- Always returns NULL, not an allocator
  | null nonNullRvs = return summ
  | otherwise = do
    valid <- mapM (isAllocatedWithoutEscape esumm summ) nonNullRvs
    case and valid of
      False -> return summ
      True ->
        return $! summ & (allocatorSummary . summaryAllocatorFuncs) %~ S.insert f
  where
    -- Here, drop all NULLs that are being returned since that is
    -- okay.  Also filter out Phi nodes (since we flattened the phi
    -- node to all of the values it could represent, but that list
    -- contains the phi node itself).
    nonNullRvs = filter (mayBeAlloc . fst) rvs

-- | Return True if the given Value is the result of a call to an
-- allocator AND does not escape.
isAllocatedWithoutEscape :: EscapeSummary
                         -> AllocatorSummary
                         -> (Value, Instruction)
                         -> Analysis Bool
isAllocatedWithoutEscape esumm summ (rv, escInst) = do
  allocatorInsts <- case valueContent' rv of
    InstructionC i@CallInst { callFunction = f } ->
      checkFunctionIsAllocator f summ [i]
    InstructionC i@InvokeInst { invokeFunction = f } ->
      checkFunctionIsAllocator f summ [i]

    -- Returning a sub-object using safe addressing.  This also works
    -- for some forms of pointer arithmetic that LLVM lowers into a
    -- GEP instruction.  Something more general could be added for
    -- uglier cases, but this seems like a good compromise.
    InstructionC i@GetElementPtrInst { getElementPtrValue =
      (valueContent' -> InstructionC base@CallInst { callFunction = f })} ->
      checkFunctionIsAllocator f summ [i, base]
    InstructionC i@GetElementPtrInst { getElementPtrValue =
      (valueContent' -> InstructionC base@InvokeInst { invokeFunction = f })} ->
      checkFunctionIsAllocator f summ [i, base]

    _ -> return []
  -- If there are no values to check for escaping, this is not an
  -- allocator.  If there are values, none may escape.
  case null allocatorInsts of
    True -> return False
    False -> return $! noneEscape esumm allocatorInsts escInst

checkFunctionIsAllocator :: Value -> AllocatorSummary -> [Instruction] -> Analysis [Instruction]
checkFunctionIsAllocator v summ is =
  case valueContent' v of
    InstructionC LoadInst { } -> do
      sis <- analysisEnvironment indirectCallSummary
      case indirectCallInitializers sis v of
        [] -> return []
        [i] -> checkFunctionIsAllocator i summ is
        _ -> return []
    _ -> do
      annots <- lookupFunctionSummaryList summ v
      case any isAllocatorAnnot annots of
        False -> return []
        True -> return is

noneEscape :: EscapeSummary -> [Instruction] -> Instruction -> Bool
noneEscape escSumm is returnSlot =
  not (any (isJust . flip (escapeTest returnSlot) escSumm) is)
  where
    escapeTest rs = instructionEscapesWith (==rs)

-- Helpers

isAllocatorAnnot :: FuncAnnotation -> Bool
isAllocatorAnnot (FAAllocator _) = True
isAllocatorAnnot _ = False

isNotNull :: Value -> Bool
isNotNull v =
  case valueContent v of
    ConstantC ConstantPointerNull {} -> False
    _ -> True

isNotPhi :: Value -> Bool
isNotPhi v =
  case valueContent' v of
    InstructionC PhiNode {} -> False
    _ -> True

mayBeAlloc :: Value -> Bool
mayBeAlloc x = all ($ x) [isNotNull, isNotPhi]

-- Testing

-- | Convert an Allocator summary to a format more suitable for
-- testing
allocatorSummaryToTestFormat :: AllocatorSummary
                             -> (Map String (Maybe String), Map String (Set (String, ParamAnnotation)))
allocatorSummaryToTestFormat summ@(AllocatorSummary (ST fs args) _ _) =
  (fannots, argAnnots)
  where
    fannots = M.fromList $ map ((show . functionName) &&& const Nothing) $ S.toList fs
    argAnnots = F.foldr toArgSumm mempty args
    toArgSumm a m =
      let f = identifierAsString (functionName (argumentFunction a))
          aname = identifierAsString (argumentName a)
      in case summarizeArgument a summ of
        [(annot@(PAOutAlloc _), _)] ->
          M.insertWith S.union f (S.singleton (aname, annot)) m
        _ -> m

{-# ANN module "HLint: ignore Use if" #-}

redpajama_set_name: RedPajamaGithub


This is the first edition of our Logo Creator and includes a big (400+) variety of round shapes to create any type of logo. It's really easy to create your brand new logo. Choose a shape or mix two, modify it if necessary and finally add your colors and text.


text:
Permian gets new gas pipeline capacity
Nov 19, 2021 2:40:pm
Summit Midstream started service on its 217-km long Double E pipeline.
by: Daniel Graeber
Complimentary, Natural Gas & LNG News, Americas, Corporate, Shale Gas , Political, Ministries, Pipelines, News By Country, United States
Summit Midstream Partners announced November 18 that a 217-km shale natural gas pipeline in the US south has commenced service.
Summit's Double E pipeline, running from the shale basin in southeast New Mexico to the Waha hub in Texas, started up with a design capacity of 1.35bn ft3/d.
Summit CEO Heath Deneke said the line fills a gap in a capacity-strained region of New Mexico where drilling rigs are up by nearly 50% from third quarter 2020 levels. The pipeline, meanwhile, was completed on time and under budget.
New Mexico hosts part of the Permian shale basin. The acting head of the Energy Information Administration (EIA) testified at a Senate hearing earlier this week that most of the natural gas production growth expected next year will come from the Permian basin, as well as the Haynesville play situated mostly in Louisiana.
The latest drilling productivity report from the EIA forecasts Permian natural gas production at about 19.3bn ft3/d for November. That makes it the second-largest natural gas basin in the Lower 48 states behind the Appalachia shale.
Texas midstreamer acquires Haynesville assets
Cameron LNG to scale back expansion plan

redpajama_set_name: RedPajamaCommonCrawl


text:
Friday's Proposed Schedule, First Draft
Quite Frankly, I could be very happy setting up a chair and seeing all the panels on the Walt Disney Archives Stage at D23. The list of activities going on in that room is phenomenal and includes many of my favorite subjects about Disney history. From the first 2 panels ("The Walt Disney Company's celebrated product history and the exciting future ahead," and "60 years of the Horseman known as Zorro" [Check out the penguin my wife made] to the penultimate panel – "Sleeping Beauty Castle Walkthrough: 60 years of Walt's Most Charming Tableaux"), there are so many good panels where the surprises and guests could be amazing.
That would mean missing out on some other great panels, some of which haven't even been announced yet. There are a couple of conundrums and decisions to make, so this is the preliminary schedule that I would like to be able to follow with the comments as to why. Vote in the poll below to help me decide what I should go see. Of course, I am going to put the one thing I absolutely want to do on any given day in bold; the key to any successful con is decide on the one thing you want and everything else is a bonus.
Friday starts the day with a scheduling conflict. On the Main Stage, Disney will be inducting its Legends. The list is: Carrie Fisher, Clyde Geronimi, Manuel Gonzales, Mark Hamill, Wayne Jackson, Jack Kirby, Stan Lee, Garry Marshall, Julie Taymor and Oprah Winfrey. Star Wars, Marvel and ABC are represented in spades. I've seen Stan Lee at Salt Lake Comic Con, but I would love to see Mark Hamill. Typically, these big award ceremonies come with some sort of surprise for the audience and would provide the best opportunity for video (if it is allowed). And my mom wants me to see Oprah. Going to the Legends Ceremony means getting up earlier to be among the first in line, which I am probably going to do anyway. It also means missing the first 2 panels on the Archives Stage.
Afterwards, I could hit "Walking with Giants: A virtual visit to the Hyperion Studio," but that panel ends at 2:30 which might mean missing out the announcements for new animated films from Disney and Pixar, which starts at 3 on the Main Stage – the Main Stage is always the most difficult to get into and they aren't allowing recording devices for this presentation. But going to the Main Stage for the Disney Animation/Pixar announcements means missing out on "Pirates of the Caribbean: 50 Years of swashbuckling adventures in Disney Parks" (Check out the penguins my wife made for the 50th anniversary) or "Ludwig von Drake and Walt Disney's Color TV Revolution" and "Ink and Paint: The women of Walt Disney's Animation." At 6pm there is another set of conflicts – "Melodies in Walt's Time: The Music of Disney Live Action Films" or "Park Stars: Original Characters of the Disney Parks."
So right now, I have to go with this as my dream line-up for Friday:
The Walt Disney Company's celebrated product history and the exciting future ahead
60 years of the Horseman known as Zorro
Walking with Giants: A virtual visit to the Hyperion Studio
Pirates of the Caribbean: 50 Years of swashbuckling adventures in Disney Parks
Melodies in Walt's Time: The music of Disney's live-action films (with the acknowledgement that Park Stars would give me some floor time.)
Vote in the poll below!


For our first Monthly Market, we are celebrating the rustic, sophisticated simplicity of Scandinavian design. Think worn wood finishes and old and well-crafted furniture, all carefully collected and curated in our Old Glory style. The emphasis in Scandinavian design is on craftsmanship and function, on refined simplicity, and on an overall sense of welcoming tradition and whimsy. A prominent Scandinavian design motto, "Make it humble, make it harmonious, and above all, make it work," resonates with our own aesthetic goals so well, we thought this would be the perfect way to kick off our Monthly Market series. Join us for festive food & drinks, ideas & inspiration, and of course great shopping! We will have special events as well as a few Valentine's Day treats on Saturday.
Artist and designer extraordinaire Jeanne Oliver will be teaching one of her inspiring painting classes during our Market! You won't want to miss this opportunity to learn from this warm, witty, and infinitely talented creative powerhouse. Visit her website and blog to learn more about her & her art.
Creating art is a constant of adding and taking away, losing and finding yourself and discovering what you are really trying to say with your art. Join me for a one day class of creating as we add layers through paint, charcoal, mark making, acrylics and collage. We will work on two pieces at once to keep our creating loose and spontaneous. This class will incorporate how to create interesting backgrounds, break down how to draw a face or figure, mark making, and collage.
The class is now FULL. You can check out Jeanne's other classes here!


When things get out of hand, they get out of hand fast.
Well, that went to hell in a handbasket real fast.
Things might have gotten out of hand.
He comes barreling through a roundabout and leans a painful lesson about the flow of traffic.
Photos capturing incidents that got a little out of hand.
Sometimes life goes from 0 to 100 real quick.
Learn from these mistakes and play it cool bro, keep your libido in check.
Things change very fast if you are not careful.
Funny examples of when things get carried away.


text:
Ti.include('setup.js');

if(ActiveRecord.connection && ActiveRecord.connection.storage){
    User.addIndex('byLetter',{a:{},b:{},c:{}},{
        afterSave: function(index,user){
            var first_letter = user.name.substring(0,1).toLowerCase();
            index[first_letter][user.id] = user;
        },
        afterDestroy: function(index,user){
            var first_letter = user.name.substring(0,1).toLowerCase();
            delete index[first_letter][user.id];
        }
    });
    var alice = User.create({name: 'alice'});
    var bob = User.create({name: 'bob'});
    assert(User.indexed.byLetter.a[alice.id].name == 'alice','test index creation');
    assert(User.indexed.byLetter.b[bob.id].name == 'bob','test index creation');
    bob.destroy();
    assert(User.indexed.byLetter.a[alice.id].name == 'alice','test index destruction');
    assert(!(bob.id in User.indexed.byLetter.b),'test index item destruction');
    User.removeIndex('byLetter');
    assert(!('byLetter' in User.indexed),'test index destruction');
}

Ti.include('success.js');


Learn how to use the Trend Micro Anti-Threat Toolkit (ATTK) with Clean Boot to remove Master Boot Record (MBR) and rootkit infections.
Download the Anti-Threat Toolkit depending on your operating system type below, then save it to your desktop.
To check your system type, refer to this Knowledge Base article: Check if you are running a 32-bit or 64-bit version of Windows operating system.
Double-click the attk_ScanCleanOnline_gui_xxx.exe file to run the ATTK tool.
Read the License Agreement, then click I Agree.
A download will be initiated, wait for the download to finish and proceed to Step 2: Run Trend Micro Anti-Threat Toolkit (ATTK) with Clean Boot.
Open the downloaded tool, then click Install Clean Boot.
If you want to do a scan, before proceeding with Clean Boot, click the Scan Now button to check for threats.
Some threats require a special tool such as Clean Boot to be removed.
Click OK to confirm the installation of Clean Boot.
After the computer restarts, the Clean Boot will initialize and triggers the scan and a restart is required for the second time.
On the boot menu, select on your operating system, then press ENTER.
After loading the operating system, ATTK will automatically run and display the results of the scan.


You have come to the right place to find out all there is to know about your race experience at IRONMAN Taiwan.
More information will be available soon, keep checking back to find out more information.
If you are looking for course information, please visit the Course Page above. If you can't find what you're looking for and need assistance, visit the Contact Page and let us know how we can assist you.


text:
Home » Sustainability » CEOs called out over sluggish climate efforts at Davos 2023
CEOs called out over sluggish climate efforts at Davos 2023
By Archie Burkinshaw January 25, 2023 2 Mins Read
The World Economic Forum (WEF) recently hosted its annual meeting in Davos, attracting corporate titans and their bankers to turn a spotlight on just how quickly they are moving to combat climate change.
The number of organisations pledging to reach net zero emissions by mid-century has soared in recent years (up 60% to more than 11,000 in September 2022) UN figures have shown. Yet the world remains on course to miss its climate goals.
Several bankers and executives attending the event said they were looking for ways to speed up the transition to a greener future. Increasingly, they said conversations in C-suites and with financiers had turned to the risks that climate change presented to businesses.
"Suddenly people have realised that it is something that's not just a way of presenting things, but that it is a necessity for survival," said André Hoffmann, vice chairman of Swiss drugmaker Roche (ROG.S).
While there is unanimous agreement on the need for change, people were divided on the pace that is needed to address the global problems. Climate activist Greta Thunberg made the journey up the Swiss Alps to call on the global energy industry and its financiers to end all fossil fuel investments.
Regulators across the world are bringing in tougher rules to better police 'sustainable' activities and with more bad practices being challenged in court, executives in the Swiss mountain resort said they were focused on sustainability.
Suni Harford, the president of UBS's asset management arm who leads the bank's sustainability efforts, said her conversations at Davos suggested no let up in focus on climate, despite the shorter-term pressures.
"Clients are becoming ever more informed on the energy transition, demand for sustainable and green products has held up well, and clients are increasingly looking to measure the impact of their portfolios."
Despite the continuous growth in pledges, the world is currently on course to miss its goal of capping global warming at 1.5 °C above the pre-industrial (1850 – 1900) average, heading instead towards 2.8 °C, the UN secretary-general told delegates.
António Guterres gave a fresh warning about the dangers of deceptive corporate efforts to get to net zero emissions and called for faster action.
"Put forward credible and transparent transition plans on how to achieve net zero – and submit those plans before the end of this year," Guterres said in a speech. "The transition to net zero must be grounded in real emissions cuts."
Davos is the first of five climate events the WEF will be involved in this year with stops in Geneva, London, New York and more along the way, culminating at the World Climate Summit at COP28 hosted by Dubai in December.
World Resilience Summit, Geneva – 24 May
Climate Investment Summit, London – 28 June
World Biodiversity Summit, New York – 20 September
World Energy Transition Summit, New York – 21 September
World Climate Summit (The Investment COP), Dubai – 3 December
Receive the latest to your inbox and stay informed about all things business sustainability.
Unsubscribe anytime! Read our privacy policy for more info.
EVENT NETZERO NEWS
Share. LinkedIn Facebook Twitter Email
Archie Burkinshaw
January 26, 2023 By Archie Burkinshaw3 Mins Read
January 25, 2023 By James Hannay2 Mins Read
Starting at the source: A simple guide to sustainable supply chain management
Confused by CSRD, NFRD and SFDR? Here's how AI may help
Why hydrogen is not the miracle solution to combat climate change
We hope you enjoyed this article.
Join our rapidly growing community of professionals and business owners and receive the latest in all thing's sustainability from the UK and around the world.
Join our community of professionals and business owners to receive more like this direct to your inbox.


It is because of this right of social duty to practice our faith according to the dictates of conscience that we were free to teach our children this week from the Bible God's truth about Jesus and His glorious work of salvation. It is because of this right that parents brought their children every night to study God's word and be taught by dedicated leaders what the Bible says. It was because of this right that children memorized the theme verse. It was because of this right that children raised their hands when asked if they wanted to receive Jesus as their Savior and Lord.
AND LET IT BEGIN IN ME!
Independence day is the day where people are celebrating their freedom, a day where people are making some delicious foods and have that different elements of surprises that will make the night more fun and exciting. This is a day that we should always be thankful for. We may have some dark times that gives the lowest moment, but there is a rainbow after all of these things. We need to maintain that positive outlook in life and everything will be fine. July 4th is the event where each American citizen is filled with so much happiness.


text:
Daryl D. Johnson
Described by Art New England magazine as "…gestural realist landscapes with the overall effect of speeding through layers of lighted space"
Described by Art New England magazine as "…gestural realist landscapes with the overall effect of speeding through layers of lighted space," Daryl's oil paintings are a colorful tribute to the back roads and vistas of New England from which she gets inspiration while motorcycling.
Born in Manhattan, Daryl's parents moved with her two older sisters to the suburbs when she was two. Armonk, NY provided lots of opportunities to play in wild forests, ice skate on large lakes, visit NYC Museums often, and to attend the annual summer outdoor Art Show. She loved annual Girl Scout camp in upstate New York. Her High School art teacher, Gerry Rinaldi, prompted all his students to observe, stretch and practice art. She starred in many musicals, singing and dancing under the direction of Gene Bissell. She was the first girl to take Mechanical Drawing in her high school, having to plead with the guidance counselor for permission to do so. She likes to tell the story of her first day in class when Mr. Ruthizer took out a drawing implement: "This is a pencil. I am going to show you how to sharpen it". She knew immediately she was in the right class. She graduated with her still best friend, Redenta Soprano, a botanical illustrator.
After graduating Hope College in Holland, MI with a degree in fine arts and a minor in Ancient Civilization, Daryl toured the country doing outdoor art shows and selling her work through galleries in the Northeast US. She also freelanced as a graphic designer.
She married Corky Benson, a software engineer in 1982 and moved to New Haven, CT where she maintained a loft studio in the Marlin Building. In 1988 they moved to Candia, NH and started a family.
Today she lives with her husband in Amherst, NH.
BFA, Hope College, 1975
Postgrad., University Cincinnati, 1976
Postgrad., Art Student's League, New York City, 1978
Postgrad., Vermont Studio Center, Johnson, VT 1988
My oil paintings are inspired by the energy in nature expressed by shifting water patterns and rising transient clouds. These are familiar views, but the subject is the underlying chi, the energy in the landscape. The earth "breathes" in and out with compositions of heaving shapes. Skies are majestic in wide-angle vision. Light dances from mountain top to cloud droplets to oceans to beach.
Practicing Ai Chi (Tai Chi in a pool) helps me sense the flowing chi. The works express a calm, an anticipation, an uplifting or an ominous feeling. The skies resonate with pulsing, sweeping clouds. Lofty, powerful patterns produce a rhythm of color. A celebration of the vibration of the planet.
My favorite artist is British oil painter J.W.W. Turner whose paintings I have traveled the world to see, including numerous trips to England to visit Tate Britain's Turner Collection. The first time I entered a black taxi in London and said "Take me to the Tate, please" was one of the most thrilling moments of my live. Truly moving land and seascapes with luminous skies.


Conveniently located near the train station and just a 10 minutes walk away from the city center, you'll find Hotel Belle-Vie, a charming hotel that is held by the even more charming Chris. You can feel the building has a long history and the rustic decoration is the perfect complement to it. You'll quickly be at ease in one of the light rooms and the owner will make you feel like he's got all your needs covered.
As mentioned earlier, Sint-Truiden has a few wonderful biking trails that will take you through the local fruit cultures, mainly apple and pear trees. To embark on this journey, head to the Tourist Office (Grote Markt 36) to pick up the 'Van bloesem tot oogst' biking map. As the for the bikes, you can get them near the train station for about €10,00 a day. I suggest doing the little loop that goes as follows: 135 - 134 - 185 - 186 - 358 - 187 - 188 - 135. On the Romeinse Weg, somewhere in the middle of numbers 185 and 186, make sure to get off your bikes and up the stairs to take in the views of the surrounding fields. If you start your tour at 11:30, you should arrive at the lunch spot around 13:00.
At point 188 of the biking route, make a stop to have something to eat and drink at Brouwerij Wilderen. The place has been a brewery since the 18th century and is one of the oldest buildings of the village. Obviously it has a long tradition, but it is also very modern. The renovated barn is mesmerizing and they still produce beer and various spirits today, such as gin, whisky and a local aperitif called 'Wiggle' (which I highly recommend). And if you wish to learn everything there is to know about the process of making those drinks, you can join the afternoon guided tour (every Saturday and Sunday at 15:00, book online here).
There's always time for a little shopping and in Sint-Truiden there are a few boutiques that are definitely worth a stop. At L'Histoire De Roo (Sint-Martenplein 7) you'll find a mix of Belgian, Scandinavian, French and Spanish brands for girls and women. At Roosen (Stapelstraat 23 & 28) both women and men can find multiple labels ranging from Moschino to Ted Baker. And last but not least, Decadence De Luxe (Grote Markt 61) is the concept store you don't want to miss. A beautiful setting, nice music, plenty of trendy clothes and accessories, ... make it the place to be for fashionistas!
One of the best restaurants in Sint-Truiden is Bistro 11. This lovely place has been open for 2 or 3 years and is the little baby of Saskia and David, a couple that's passionate about good food that's made with love. The open kitchen adds up to the human character of the project and the menu looks amazing. The fact that slight alterations are done according to the availability of locally sourced products is an extra asset. They even offer a 3-course vegetarian menu so I was heaven! Be aware though that it fills up real quick so book your table in advance.
After dinner, I suggest doing a nice digestive walk. But not just any walk! From September to February, Sint-Truiden literally lights up after sunset every Friday, Saturday and Sunday night. Historic buildings and monuments seem to come alive as they become the canvas for various light projections. Enlightened pavements help you find your way on the 5 km route, but it's advised to pick up the map at the Tourist Office to make the most of this experience (which is entirely free by the way).
After your delightful breakfast at Hotel Belle-Vie, I recommend discovering the city in broad day light, more specifically its monuments. But instead of just admiring them from the outside, why not go in? With the 'Trudo Pass' (€4,00, available the Tourist Office), you get a personal code that grants you access to all of the city's monuments. Among other things, you can visit the ruins of the Abbey. Not only are these ruins fascinating, you can also climb to the top of the Abbey Tower to enjoy epic panoramic views of the surroundings. Other highlights are the Academy Hall with its octagonal shape and the Emperor's Hall with 'trompe-l'oeil' paintings, but these are only open from 14:00 on Sunday so you can keep them for after lunch.
A hip place with a sort of club vibe in the city center is 't Nieuwscafé. This is no surprise as it actually also serves as club at nighttime. During the day, you can have lunch at the brasserie where they serve daily specials, Belgian classics and different kinds of salads, croques, etc. Also, if you're lucky with the weather, they have a great terrace!
The train will take you from Brussels to Sint-Truiden in just 1 hour. By car, it will take you approximately the same time. Chris from Hotel Belle-Vie can help you out for parking. If you want any additional information, you can always ask the people of Toerisme Limburg at the Tourist Office. For example if you'd like to do the 'Sint-Truiden by lights' walk with a guide.


Nicely renovated 1 bedroom unit with an amazing south facing patio. You will love this bright and spacious 665 sqft. home with new hardwood floors, tile, paint, light fixtures and an upgraded kitchen and bathroom. This very pet friendly building has an amazing rooftop deck with panoramic views and has been well maintained. New elevator 2013, plumbing and paint 2012, rainscreened in 2002, roof replaced in 1998. Comes with in-suite storage and one parking stall, conveniently located only blocks to Skytrain and the unique shops and restaurants along the Drive. Simply a great feeling space to call home in a desirable neighbourhood, call today! Open house July 11/12 2-4pm.
Please send me more information on # 103 1422 E 3RD AV Grandview VE, Vancouver East Thank you.


text:
Putin Slams 'Lying West' But Says 'Positive' on U.S.-NATO Talks
Russian President Vladimir Putin. kremlin.ru
President Vladimir Putin on Thursday accused the West of lying to Russia on NATO's expansion but noted "positive" developments with Washington over Moscow's demands for security guarantees, with direct talks expected in Geneva next year.
The West has for weeks accused Russia of massing troops near its border with Ukraine and planning an invasion against Kiev.
Asked about whether a war against Ukraine was a realistic possibility, Putin replied that Russia was responding to threats from Kiev and that its actions regarding Ukraine "depend on our security," not on how talks with the U.S. proceed.
"We have to keep an eye on what is happening in Ukraine, and on when they might attack," he told journalists at his annual end-of-year press conference.
"One gets the impression that [Ukraine] is preparing a third military campaign and we're being warned not to interfere and not defend [Russian-speaking residents in eastern Ukraine] or face new sanctions," Putin said. "We must react and do something about it."
Putin Delivers Marathon End-of-Year Press Conference Amid Ukraine Tensions, Economic Woes
At the same time, Putin said that ongoing negotiations with the United States on Russia's proposed security guarantees were "positive" and hinted at fresh direct talks in the new year.
"U.S. partners told us that they are ready to begin this discussion, these talks, at the very start of next year in Geneva," Putin said.
Putin repeated his demand that "there must not be any eastward NATO expansion," one of several points in a draft list of security guarantees that Russia is seeking from the U.S.-led military bloc.
"We were fooled by five waves of NATO's eastward expansion. We're not threatening anyone, they came to us. You're asking us for guarantees, but it's you who needs to give us guarantees immediately."
Russia Issues Demands to Limit NATO's Influence in Post-Soviet Space, Eastern Europe
Putin then slammed Ukraine's development in recent years, saying there is "complete poverty" in the country.
He called the 2014 Maidan Revolution a "bloody coup d'etat" and accused Ukrainian "extremists" of planning operations to retake Crimea and the Donbass region of eastern Ukraine.
Putin also defended Russia's 2014 annexation of Crimea and support of pro-Moscow rebels in the Donbass, saying that inhabitants of both regions had always thought of themselves as Russians.
He stressed that Donbass residents alone should determine the region's future, adding that Russia was ready to act as a mediator to "create a better future for the people living there."
Read more about: Putin
What Are Russian State Media Saying About Ukraine?
FRONTLINE FIGURE
Dour Moscow Mayor Comes to Fore as 'PM for Coronavirus'
A reality check from Sergei Sobyanin prompted President Vladimir Putin to address the nation.
Putin Calls for Sanctions 'Moratorium' at G20 Summit
"At the end of the day, it's a question of life and death," he said.
In First Address to Nation on the Coronavirus, Putin Holds Back From Stringent Measures
The Russian leader also delayed a vote on constitutional changes that could see him remain in power until 2036.
CORONAVIRUS PLEA
Prominent Russians Urge Government to Take Swift Action Against Coronavirus
The petition calls for universal free testing and a postponement of the vote on Putin's constitutional amendments.


the daily be: do: birthday bowl.
i mentioned that last week we celebrated mr.a's birthday.
he is now officially closer to 30 than i am. ha!
we went out for pizza and bowling! it was really fun. i hadn't been bowling in years (and it showed), but we all had a blast.
joey was on a bender that night. haha, just kidding. he had to work while we all bowled.
instead of a birthday cake we classy'ed it up with powdered donuts.
it was a pretty fun party. piper loved it so much i'm sure we'll be going back for her next* birthday.
*next meaning fifth birthday! FIFTH! tears, sobs, weeps.
adorable photos! looks like a great time!
SUCH a fun time! I think your older daughter is the perfect mix of you and your husband! I know other people always see resemblances in your family that you may not! HA!
it's always so interesting to hear people's perspective on who looks like whom! generally people say quinn is all ottley (my side) and piper is all arganbright. but everyone notices different traits!


We've got the answers to all your outerwear questions, so you can find the right coat to fit you and your lifestyle.
Q: Last winter the swing coat was all the rage. What is this year's must-have style?
Wool plaid coat, Covington, $160; select Sears stores, sears.com.
Q: What's a good coat to wear for dressy occasions that's warm, too?
Belted trench, Weatherproof Garment Company, $199; select Macy's nationwide.
Q: Is a white coat a do or a don't?
"Double Serge" wool coat, Ann Taylor, $269; anntaylor.com.
Q: Can I find a fake fur that looks real and not cheesy?
Leopard coat, Miss Gallery, $99; Burlington Coat Factory.
Q: What is the one coat that can go from day to night and everywhere in between?
"Faux Shearling Car Coat," Lands' End, $100; 800-800-5800, landsend.com.
Q: Does the hem of my coat need to match the hem of whatever I am wearing?
Magenta coat, H&M, $100; hm.com for store info. Ombre dress, Victoria's Secret Catalogue, $148; 800-888-8200, victoriassecret.com. "Nouveau Tulip" scarf, Echo, $36; 800-BUY-MACY, Macy's.
Q: Is there a way to stay really warm without looking like the Michelin Man?
"Angel Down Coat," Lands' End, $135; 800-800-5800, landsend.com.


text:
2RM sweeps award season in Des Moines
By Two Rivers Marketing
Two Rivers Marketing had an impressive awards season, winning Best of Show at the top three local marketing award ceremonies. This year, the agency was awarded Best of Show at the 2016 NOVA Awards presented by the Des Moines chapter of the American Marketing Association (AMA) and at the American Advertising Federation (AAF) of Des Moines Awards. Two Rivers also won Best of Show at the PRIME Awards hosted by the Central Iowa chapter of the Public Relations Society of America (PRSA) in October 2015.
"Each of the three campaigns posed an exciting opportunity to challenge both our associates and our clients to take some risks and pursue some big ideas," said Nathan Huss, public relations director at Two Rivers Marketing. "While our top priority is providing the best service to our clients on a daily basis in order to meet and exceed their needs, we are always honored to be recognized by organizations that represent our profession like AMA, AAF and PRSA."
The Vermeer Ultimate Crew contest was designed to recognize and reward the talented individuals in the underground utility industry and culminated in a special event dubbed the Underground Showdown, where four of the best horizontal directional drilling crews in North America competed in a live skills competition. The entry beat out a record number of entries at the 2016 NOVA Awards and was also awarded Best of Category and People's Choice honors at the ceremony.
The Volvo "Ex Factor" brand awareness campaign edged out over 260 entries across seven major categories to win Best of Show at the 2016 AAF Awards. The AAF of Des Moines honors the creative efforts of advertising agencies across Central Iowa with its local American Advertising Awards competition. First of a three-tiered national competition, the AAF of Des Moines award winners will advance to one of 14 district competitions.
In an effort to increase employee engagement and make associates better agency ambassadors, Two Rivers Marketing launched the Social September campaign to engage and educate agency associates about effectively using various social media channels. The month-long internal social media campaign achieved 80-percent employee participation and won Best of Show at the 2015 PRIME Awards hosted by the Central Iowa chapter of PRSA.
About Two Rivers Marketing
Two Rivers Marketing is a full-service business-to-business (B2B) marketing communications agency. Email us with your thoughts or questions at blog@2rm.com.


text:
Atlantipedia
An A-Z Guide To The Search For Plato's Atlantis
I have now published my new book, Joining The Dots, which offers a fresh look at the Atlantis mystery. I have addressed the critical questions of when, where and who, using Plato's own words, tempered with some critical thinking and a modicum of common sense.
Alexander, Edward
Steiner, Sarah
Schaeffer, Claude Frédérick-Armand
Savona-Ventura, Charles
Atitlan
Atitlán is the name of a beautiful lake in the highlands of Guatemala and the centre of a flourishing tourist industry. Frank Joseph identifies the area as having been settled by colonisers from Atlantis. In recent years, evidence of pre-classical Mayan artefacts was discovered on a submerged island in the middle of the lake amid what were apparently ceremonial structures. To suggest that this was Atlantis or even an Atlantean colony is just speculation unsupported by anything apart from a fertile imagination.
Copyright © Tony O'Connell


Oppo presents Sky Selfie Contest and it is for all people. It is chance to Win Exciting Goodies and many more for eligible people. You have to participate because it is easy to play amazing Contest. So, go and participate in contest for win and don't forget check terms and conditions.
Oppo organizes Sky Selfie Contest and it is interesting contest. So, all participants who want to participate in amazing contest can click on given link. For be a participant in this contest, you must go for given contest link. You have to see the terms and conditions for this amazing contest. Winner of this contest can Win Exciting Goodies. So, upload your selfi on facebook page and get a chance to win.
All rules of Oppo Sky Selfie Contest are available on the contest link. All participants must participate after checking terms and conditions. So, go for this contest and Win Exciting Goodies.
Don't forget for hash tag.


text:
Fortune: Gaikai looking to sell streaming game business for $500+ million
Fortune reports that Gaikai is looking to sell itself for $500+ million.
By Sean Hollister
Source Fortune
Jun 21, 2012, 10:13 PM UTC |
via cdn2.sbnation.com
Fortune is reporting that Gaikai is on the market: the streaming game company has hired bankers and is looking for a buyer to spend "well in excess of $500 million," according to the publication's anonymous sources. We can't say whether that would be a fair price for the firm or not, but it's definitely a company to watch: we recently spent an entire day at Gaikai's Aliso Viejo HQ, and discovered that the team's ambitions go way beyond getting gamers to pay for a cloud-based game or twelve.
When we reached out, Gaikai wouldn't comment on what it characterized as a rumor, but this isn't the first time this month that the company's allegedly been headed towards a sale. Earlier this month, multiple independent publications reported that Sony was set to purchase Gaikai, and would announce a PlayStation streaming service using the company's technology at the 2012 Electronic Entertainment Expo. Obviously, E3 came and went without so much as a nod, so perhaps the Sony deal fell through and Gaikai is seeking a replacement partner... or perhaps we should take the entire story with a proverbial grain of salt.


I have been looking forward to this weekend for absolutely ages! Usually I'm a bit worried that I have become so excited and built it all up so much that it is a disappointment when it actually arrives. But so far, this weekend has been absolutely spot on.
My sister-in-law turns 30 tomorrow, and so she decided to book a holiday camping for her, my brother and their four children, not far away from home in Woodhall Spa. It's a gorgeous quaint town with woodland walks, swimming facilities, old fashioned pubs, vintage style shops, and amazing bakeries.
We drove down this morning to spend some time with them. I won't lie, I only got two hours sleep last night, so the fact I was awake and ready by 8 is a miracle in my opinion! When we arrived, we decided to play some games outside in the sun. We did everything from colouring Mr Men characters in, to playing tennis, to wearing these velcro hats and throwing balls at each others heads! Considering my lack of sleep, I'm surprised I was able to function at all, but we had so much fun I couldn't sit it out. As you can see, the velcro hat didn't fit over my gigantic head, but I improvised best I could!
We then went to grab a spot of lunch from our favourite bakery. I never remember what it is called unfortunately, but it is absolutely amazing! They make their own chocolates as well as bread, sandwiches and cakes. I think this display of miniature cupcakes and doughnuts is absolutely adorable! The photo doesn't do justice how small these actually were! I would say they were about an inch in height.
We each ordered a small bap and a cake each, but the sandwiches are absolutely huge! We took them back to their tent so we could relax in the sun, or because I'm a milk bottle, in the shade for me!
While we were walking back to the tent, I noticed a little milkshake bar called Smoovies and simply couldn't walk past. They are similar to the high street brand 'Shake a Break', making ice cream milkshakes with popular sweets and chocolate bars. I ordered my 'Shake a Break' favourite, Refreshers sweets milkshake. It was so yummy, and really refreshing given how hot it was today. I promise I wasn't as grumpy as I looked, the sun was just directly in our face when this was taken!
Completely refreshed, we made our way back to the tent to enjoy our lunch, and a surprise birthday cake. I've had a really enjoyable day so far. I'm working this afternoon for a few hours, and I'm ending my day by going out into town tonight. I also went out last night, but unfortunately don't have any of the photos at the moment. Mark Wright, formerly of The Only Way is Essex, was in our local club The Assembly Rooms. It was a really good night and I can't believe how good looking he is! I can't wait to see the photos and will share them on here with you as soon as I can.
I hope you all enjoy your weekend as much as I'm enjoying mine!
PS) As of Tuesday, my car will be here and I will be officially on the roads woo hoo!!


text:
Storytelling Podcasts >
Storytelling Podcasts
Comedy Podcasts
News & Politics Podcasts
https://www.facebook.com/SocialCurrencyPodcast/
socialcurrency1@gmail.com
Crazy World Cup Stories! (Ep. 22)
Everyone has World Cup fever right now. As big soccer fans, this week we discussed some of the craziest things to happen in the history of the World Cup. Whether you're a staunch soccer fan or a casual observer, we've good the goods on the biggest soccer tourny on the planet.
Bigfoot! (Ep. 21)
Everyone knows about Bigfoot (or Sasquatch), the large bipedal primate that allegedly roams the United States. But where did its legend begin? Could there be some truth behind it? On this week's episode, we tell you how Bigfoot's legend spread in the USA and discuss some famous (and often hilarious) Bigfoot hoaxes.
The Dyatlov Pass Incident (Ep. 20)
In 1959, nine Russian hikers took off for an expedition that ended in a bizarre tragedy. To this day, people don't know why the experienced crew displayed strange behavior before perishing in the Ural Mountains. This week we discuss the incident, and the theories behind what happened that day in Russia.
The Unsolved Mystery of the Somerton Man (Ep. 19)
In 1948, a man was found dead on Somerton Beach in Australia. To this day, nobody has identified him. The clues in the case are bizarre and mysterious, stumping authorities around the world for 70 years. We tell the story and give our theory on this week's episode.
Your Favorite Phrases (Ep. 18)
Have you ever called "shotgun" in a car? Have you said, "don't throw out the baby with the bath water?" Ever wonder why we say those, and some of your other favorite phases? This week we tell you the origin of your favorite idioms, and buckle up, because a lot of them are pretty weird. We also make a list of the most interesting food items you can buy online. Don't ask. Just listen. It'll all make sense.
Loch Ness Monster (Ep. 17)
Everybody knows Nessie, the longneck prehistoric animal that some people believe takes up her residence in Loch Ness. But how did the legend of the Loch Ness Monster begin? What's the story behind all the famous photos of her? Is there really a monster living in the famous narrow body of water in the Scottish Highlands? We discuss all of that on this week's episode.
Ancient Astronaut Aliens? (Ep. 16)
There's a school to thought that aliens have been involved in shaping human history. From building the pyramids to the origin of religion, people believe that there has been otherworldly involvement. How did it start and what evidence supports these beliefs? Find out on this week's episode.
Amelia Earhart (Ep. 15)
When someone mentions Amelia Earhart, the first thing people think about is her mysterious disappearance. But before that fateful day she led an extraordinary life, blazing trails for women and pushing the boundaries of the aviation industry. This week, we unpack her spectacular life, and some theories around what happened to her on that last fateful flight.
The REAL stories of Disney Movies (Ep. 14)
Many Disney movies are based on previous books or fairy tales. Often times, those books and fairy tales are totally messed up. This week we dive into some of the more unnerving stories behind your favorite Disney movies.
The Bone Wars (Ep. 13)
Early paleontology in America was wild. The two men leading the race to unearth dinosaurs had some questionable practices on the road to discovery. Bribes, lying, stealing, even destroying bones! We also apologize in advance to the fine people of New Jersey…our list this week might have been a bit much.
The Hitler Diaries (Ep. 12)
It's one of the greatest hoaxes in history. How did one man make millions by fooling journalists across the globe into believing he had the authentic diaries of Adolf Hitler? And, in the spirit of this ultimately useless purchase, we discuss some of the strangest items you can buy on the internet. Let me tell ya, that gets interesting.
The Bermuda Triangle (Ep. 11)
Planes and ships wander into this gorgeous section of the Atlantic Ocean to never been seen from again. Or do they? How did the Bermuda Triangle get its name and infamous reputation? Can you make it through Christian's math rap about triangles? Find out this week on Social Currency.
Daylight Saving Time (Ep. 10)
Every year when we move the clocks, people get cranky. But why do we do this ritual known as Daylight Saving Time? How did it start? What are the benefits? The answers might surprise you on this week's episode of Social Currency.
The first dinosaur discovered (Ep. 9)
Everybody loves dinosaurs (unless you have no soul), but who discovered them? How did we realize some random bones in the ground came from lizards millions of years ago? Did Christian really go to clown school? We answer these questions and more in this week's episode of Social Currency.
Lamborghini's odd beginning (Ep. 8)
How did an affordable brand of tractors become high-end sports cars? Is Ferruccio Lamborghini the most spiteful entrepreneur ever? What's the deal with the Pope's holy Lamborghini? We unpack all of these questions in this week's episode of Social Currency.
The great state of…Jefferson? (Ep. 7)
In the heart of the Pacific Northwest, there's a section of land that was almost the 51st state. But the state of Jefferson wasn't meant to be. Why didn't it become a state? Why do these counties want their own state? Why hasn't someone invented a robot to clean Steve's house? We'll talk about all these questions, and more, on this week's episode of Social Currency.
The Mystery of D.B. Cooper (Ep. 6)
It's the only unsolved airline highjacking in US history. In 1971, a man going by the name Dan Cooper boarded a flight from Portland to Seattle, claiming he had a bomb. What happened next is right out of a movie. How did it all go down? Why do people call refer to Dan Cooper as D.B.? Is he the most polite highjacker in the history of highjackers? Why does Christian have such a distain for Kristen Stewart? Find out this week on Social Currency.
It's-a me, Mario! (Ep. 5)
Mario is the most iconic video game character in history, but where did he come from? How did he get his name? Why does he look the way he looks? Was he always a plumber? We unpack the history of Mario in this week's episode of Social Currency.
Coca-Cola started how?! (Ep. 4)
Known for its friendly cartoon polar bears and "share a Coke," you might assume Coca-Cola was always a squeaky-clean company. Not exactly the case. The origin story might surprise you. It sure surprised us. But, to be fair, it's not that hard to surprise us. So we're a bad barometer. Anyhow, enjoy the story of one of the world's favorite beverages.
A Monkey Cohost on the Today Show? Meet J. Fred Muggs. (Ep. 3)
In 1952 to try to boost ratings, the Today Show added an unlikely cohost - a monkey named J. Fred Muggs. His rise to popularity was wild, but things weren't exactly peachy on the set during his stint on the show. Links mentioned in the show: A picture of J. Fred Muggs - https://upload.wikimedia.org/wikipedia/commons/d/d5/J_Fred_Muggs_Today_Show_1954.jpg Capybara pictures - http://i.dailymail.co.uk/i/pix/2017/07/04/09/42030DCF00000578-4663910-image-a-20_1499155565109.jpg...


On Monday evening I travelled down to an international conference with a number of our Headteachers. The conference attracted around 1200 delegates from all over the world. We heard inspirational stories of how schools are using 1:1 to modernise and energise their curriculum offers. We listened, and watched demonstrations of the latest possibilities that iPads can now offer. I was blown away with the changes in GarageBand, the revised potential of Virtual Reality and how easy Apple have made coding (using Swift Playgrounds).
On Wednesday the team at Apple had asked if we could meet with Doug Beck, the Vice President of Apple, to tell him our story from "a trust" perspective. Myself and Laura spent around 3 hours with Doug and a number of other senior executives from the international team. We were able to talk through our journey of 1:1 and show them films of the young people using technology to enhance their learning. The Apple team loved the fact that our Digit4ll Pathway had edited and recorded most of the films using iMovie and Logic Pro. The quality our Pathway produces is industry standard. Massive nods of appreciation of our staff teams up at Medtia and on the New Bridge School site. If you want to see the quality of their work, the link is here. We left the meeting on Wednesday with a multitude of ideas, not just relating to our trust but also as to how we can bring the knowledge and skills of one of the world's largest and most successful organisations into Oldham and Tameside.
On Thursday I had an early start at the House of Commons where I had been asked to speak to an invited audience of MPs and members from the House of Lords about the power of technology. I do find this quite amazing as my skills are incredibly limited (I keep telling everyone I used to get paid for playing a guitar and a piano!!). I spoke at length to a gentleman with an invention background. Some of the possibilities that are becoming available really are from the realms of science fiction! I am so looking forward to observing the roll out of 1:1 at New Bridge and Hawthorns, as the possibilities relating to children and young people who have some physical impairments could be astonishing.
So, back in the office on Friday with thoughts and ideas buzzing through my head. Our "to do" list appears to be getting even longer and (if it's possible) even more ambitious. What makes our trust unique is that without an academy sponsor we are free to partner with some of most successful companies in the world (Manchester City, Hays, Apple) alongside our local partners (Local Authorities, NHS and the many, many local businesses). With all these possibilities, I always have to remind myself of the "So what?" question! Our "So what?" question always relates back to the children, young people and adults in our trust and group. By working together, can we make the world a better place for our youngsters? Can we improve their lives? Can we be pioneers in creating truly inclusive communities? You bet we can!


I've always seen Nip + Fab products about but sometimes with hype it leaves me wondering if I dare try to be left disappointed. Ever get that feeling? Until about November, had a face incident which led me looking for anything that would give my face a higher exfoliation turnover. As Nip + Fab was on sale I decided to try their glycolic range, first being their glycolic fix pads night time and between me and you - since using them I've had one spot but I digress. I liked the range so much so that when ASOS said they had some exclusives from Nip + Fab and I spotted the word GLYCOLIC. I said hell yes, come to mama.
Nip + Fab say it's a lightweight moisturiser, that is designed to hydrate and protect the skin while it's oil-free formula helps to control shine.
Now, I use this either twice or once a day, if it's once then it'll be at night to coincide with the night pads. What I like about this serum - besides the fact it's glycolic acid - is the packaging. The lid contains a click - smart. So before use I click once to get the product within the dropper and unscrew, click to release onto the back of my hand, two drops are more than enough and then apply to my face. Sometimes I apply it to my moisturiser.
The product has a pearlescent blue tint, then once applied on the face it gives such a golden hue letting it look brighter and more radiant - so it's a pretty good product to use in the morning if you want a glow that's actively helping target skin concerns. I experienced no tingling or irritation - which is good. It's so far a nice aid to my regime that includes a lot of active products that are encouraging my skin to get even and keep even.
+ please, let's remember our sunscreen even more so when you're using acid concentrated products. It'll help to protect your face as well as stop dark marks getting darker and you won't see any progress.
Have you tried anything from Nip + Fab?
i haven't tried their products, but it's so similar; must be the packaging! or maybe i've tried a sample from a beauty box? can't remember! either way you made me want to try it, i'm looking for a new moisturiser. i love how it's a dinky bottle too.
I've heard so many good things about this brand but I'm still yet to try anything. I think this would be great for my skin.
I agree, Nip n Fab are one of the rare brands that actually live up to their hype. I love the sound of this radiance shot.
This sounds amazing, I'll have to try it!
I've never heard of this brand, thanks for introducing me to it, it sounds so cool!
I've not tried any of their products but I really do need a good glycolic acid product. I have some dark spots that have started cropping up and need a good product that will work.
I haven't tried their products but seems good product. would love to give it a try.
I've heard good things about them and am definitely tempted to pick up some of their products now.
I tried the nip and fab pads.. then moved on to the nip and fab wash.. then the nip and fab moisturisers... then the serums. Basically I'm a nip and fab everything kinda girl now. The full range is the nuts!
I'm a big fan of products containing Glycolic acid, it really works for brightening up my skin. Nip and Fab have some awesome products!
This serum sounds great!! I love that a leaves a subtle glow to the skin too and that it feels good on the skin with no irritation!
I really like Nip and Fab, their CC cream is really good and I love the Glycolic pads too.
I've heard of this brand, but never heard of this product before. It sounds great!
This is a very unique product and I'd love to add to my daily routine!
No I haven't but I would love to. Sounds fab.
My mummy could do with that glow first thing in the morning! Sounds like a great product!
Never heard of anything like this before but it sounds like a handy little addition to any daily routine! Definitely something I need for my skin!
I too like many others not tried these products although I love reading about them all.


Welsh Cakes & Wellies - Page 15 of 20 - Family adventure, munching and mulching across South Wales and beyond!
We love Dyffryn Gardens, with over 55 acres of gardens there is plenty to explore. So this Easter we went along to try out their Plant Finders trail which is on until the end of April.
This week I tried out the Angela Gray cookery school. We baked a delicious carrot cake and some hot cross buns ready for Easter. I loved every minute of it!
In this months Locally Sourced, we meet the local business women behind the charming Cobbles Kitchen in Ogmore by Sea.
Not bought you mum a mothers day gift yet, don't worry! No need to trawl the shops for the same old, same old gifts, buy a locally sourced experience for your mum that she will treasure forever.
A traditional afternoon tea served up in style at the impressive Celtic Manor in Newport. A wonderful way to treat mum to a special afternoon with sumptuous cakes and delicate finger sandwiches and of course, some Prosecco to help wash it all down.
Why wait until you get to the Alps, get your legs ski fit and be ready to fly down that mountain as soon as you hit the slopes, with some practice sessions at Cardiff Dry Ski Slope!


text:
Eye Exam: A Genuine Connoisseur Looking at "Master Drawings Unveiled: 25 Years of Major Acquisitions" at the Art Institute of Chicago
September 29, 2016 at 10:30 am by Stephen F. Eisenman
by Stephen F. Eisenman
September 29, 2016 November 12, 2016 Filed under:
Michigan Avenue
Max Beckmann, "Birdplay," 1949.
Forming a great collection of paintings requires money, knowledge and taste—in that order. Collecting drawings, however, demands connoisseurship. By that I mean not simply an eye and mind trained to recognize one artist's hand from another's, or the authentic from the inauthentic, but an intuition that exceeds the senses. A genuine connoisseur of drawings can rifle through a pile of old paper and extract from it the single masterpiece almost without looking. I know this sounds like nonsense, but I saw it happen: a teacher I had thirty-five years ago, a notable connoisseur of Dutch drawings, while visiting a collector in Utrecht, stuck his hand into a trunk filled with castoff drawings and pulled from it a lovely, overlooked Jan van Goyen seascape.
I mention this because great drawings collections require the talents of such people. Some of them are legendary. One was Harold Joachim, the Art Institute's curator of prints and drawings from 1958 until his death in 1983. Since then, the department of Prints and Drawings has been led by Douglas Druick and then Suzanne Folds McCullagh. Under their guidance, and with the assistance of Mark Pascale and Martha Tedeschi the collection has grown by some nine-thousand works. The current exhibition features drawings the museum describes as "hitherto unexhibited masterful drawings," meaning that if a newly acquired work has already been shown, it won't be seen here. That's a shame because it prevents a full appraisal of the scope and success of acquisitions since 1991. Absent here, for example, is the great drawing of two upturned, antique heads (probably from the Hellenistic "Laocoon" group) by the Flemish Mannerist, Hendrick Goltzius, or the knockout Lucas Vorsterman "Lot and his Daughters," made in collaboration with Rubens! You can look up both works on the Art Institute web site and see what I mean.
Dame Laura Johnson Knight, "Study of a Young Woman," 1926.
Few of the works exhibited here reach that level of sublimity. To begin with, most of the big names in drawing, such as Goltzius, Jacques De Gheyn, Bartholomeus Spranger, Federico and Taddeo Zuccaro, Tintoretto, the Carracci, Rubens, Van Dyck, Rembrandt and Tiepolo are missing. There is however a lovely little Watteau drawing in red chalk called "Two Studies of a Dancer" (1712-13). Each is shown full-length, three-quarter view, holding up their skirts just enough to reveal a dainty shoe. The Boucher (another artist prized by collectors) is an academie ("Study of a Reclining Male Nude," c.1750) that was the basis for an etching used to instruct other artists. It is a fine drawing, very similar, but not quite as fine as the drawing in the Wallace Collection in London, probably of the same model.
Also wonderful, but utterly different, are the two drawings by Odilon Redon. The AIC already has one of the great collections of works by this enigmatic artist, so this is a case of building strength on strength. "The Die" (also known as "The Weight of Passions," circa 1878-82), on paper cut from a small notebook, shows one of the artist's typical, blocky men balancing a great die on his shoulders. Nobody has the slightest idea what it means though it somehow anticipates the poet Mallarmé's "A Throw of the Dice Will Never Abolish Chance" (1897), which Redon happened to illustrate. "False Glory" (1885) is an equally peculiar drawing, made with charcoal on tan paper. It shows a giant head, wreathed in laurel with big, somnolent eyes, bordered at right by the bottom of a classical column. Ludwig Meidner's "Self-Portrait" (1922), drawn with jet-black lithographic crayon is another colossal head. The exaggerated forehead, upcast eyes and narrow jaw make it seem insectivorous, like Kafka's Gregor Samsa from "The Metamorphosis," published just a few years before.
Edgar Degas, "Beach at Low Tide (Mouth of the River)," 1869.
But the bulk of the drawings here are highly finished works—preparatory to prints or paintings or intended to stand on their own—that do not exhibit either the brio or the introspection that makes the medium the subject of the connoisseur's adoration. The drawing in brown ink and wash by Girodet-Trioson, "Phaedra, Having Declared her Passion…" is a precise rendering of a melodramatic subject from Racine, preparatory to an engraving. The work by Adolph von Menzel, "In a Railway Carriage After a Night's Journey," precisely describes the discomforts of modern transit but without Daumier's irony. Drawings by Mallet, ("Evening Prayer," circa 1790), Peigne ("Study of Grapes," circa 1800), Zingg ("Corner of a Meadow with Reeds and Other Plants", circa 1800), and Hetsch ("A View in San Lorenzo," 1820)—you are not alone; none of these artists are household names—may be described as meretricious.
The two stars of the exhibition, Fantin-Latour's "The Anniversary—Homage to Hector Berlioz" (1877, pastel and watercolor over lithograph) and Grant Wood's "January" (1938, charcoal and white conté crayon), are each dress rehearsals for paintings. The former is an allegory of the expected kind including two figures representing Fame (trumpet at their feet and laurel wreath in hand), a woman in white holding flowers, and a tomb or monument. The latter drawing depicts haystacks half covered in snow. They all list to one side, like the sad Scarecrow from the Wizard of Oz, blown by the wind and pining for Kansas. Both drawings are excellent and enjoyable to be sure, but their acquisition did not require the rarefied powers of the connoisseur and thus don't provide the consonant pleasure. The Art Institute has one of the great drawings collections in the world, and the last twenty-five years have seen some major acquisitions—but only some of them are to be seen in this exhibition.
"Master Drawings Unveiled: 25 Years of Major Acquisitions" shows through January 29, 2017 at the Art Institute of Chicago, 111 South Michigan.
Just an Eye, But What an Eye RECOMMENDED It's possible that Hugh Edwards acquired a bad picture during his tenure as photography curator at the Art Institute, but none are visible in this exhibition dedicated to him. Instead, there is one arresting image after another. Here's just three of two hundred. Lewis Wickes Hine's "Sadie Pfeifer, a Cotton Mill Spinner, Lancaster, South Carolina," 1908. Hine was a…
Mosaics That Delight The Eye RECOMMENDED Like most everyone else who has seen them, my favorite mosaics are in San Vitale, a small, Byzantine basilica on the Adriatic coast of Italy. Their design interacts with the solemn architectural space—their colors are as brilliant as the day they were laid—and they depict real people in exciting and revealing ways. The contemporary art mosaics of Toyoharu Kii…
The View from the Bleachers: A Review of "Hand-Eye Coordination: Sports and Art" at Western Exhibitions Most works in this group show take sports as a kind of whimsical subject for art or examine the increasingly overdetermined relationship between sports and American politics.
Adolph von Menzel
Anthony van Dyck
Bartholmeus Spranger
Douglas Druick
Federico and Taddeo Zuccaro
Giovanni Battista Tiepolo
Gustav Friedrich Hetsch
Harold Joachim
Hendrick Goltzius
Henri Fantin-Latour
Jacques De Gheyn
Jan van Goyen
Jean-Antoine Watteau
Lucas Vorsterman
Suzanne Folds McCullagh
Previous Post Performing Sculpture with a Touch of Grim Humor
Next Post The Lesser-Known History of Afro-Cuban Art
Art Critic Lori Waxman Offers Live Press Generation for Overseas Artists
Fantastic Distortions: A Review of Down by Line at One After 909
Art 50 2018: Chicago's Artists' Artists
Art Top 5: February 2020
Contending With the Object: A Review of Tracing Faults at Chicago Artists Coalition


In our catalog most stunning prostitutes: exquisite and luxurious beauties, sensitive juicy whores and experienced hookers.
They parallel the Spanish Inquisition very nicely. There is no historian that would call that a genocide. Whores in Ailsa Craig - I'm just asking you to keep your issues away from work. Try be a little nice or get another job," Blaine said, struggling to keep his voice even and a little calmer this time. Afterwards, Becca and the remaining men will be traveled to Richmond, Virginia. The nine guys traveled to Richmond, Virginia for the week.
Kon-tiki Rear Window. Kon-tiki Side Tilt. Kon-tiki Swift Vision 1. Kon-tiki Swift Vision 2.