text:
require File.expand_path('../../spec_helper', __FILE__)
require 'json'

module Pod
  describe Specification::JSONSupport do
    describe 'JSON support' do
      it 'returns the json representation' do
        spec = Specification.new(nil, 'BananaLib')
        spec.version = '1.0'
        expected = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'platforms' => {
            'osx' => nil,
            'ios' => nil,
            'tvos' => nil,
            'watchos' => nil,
          },
        }
        JSON.parse(spec.to_json).should == expected
      end

      it 'terminates the json representation with a new line' do
        spec = Specification.new(nil, 'BananaLib')
        spec.to_json.should.end_with "\n"
      end

      it 'allows to specify multi-platform attributes' do
        json = <<-DOC
        {
          "name": "BananaLib",
          "ios": {
            "source_files": "Files"
          }
        }
        DOC
        spec = Specification.from_json(json)
        consumer = Specification::Consumer.new(spec, :ios)
        consumer.source_files.should == ['Files']
      end
    end

    #-------------------------------------------------------------------------#

    describe 'pretty JSON support' do
      it 'returns the json representation' do
        spec = Specification.new(nil, 'BananaLib')
        spec.version = '1.0'
        expected = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'platforms' => {
            'osx' => nil,
            'ios' => nil,
            'tvos' => nil,
            'watchos' => nil,
          },
        }
        JSON.parse(spec.to_pretty_json).should == expected
      end

      it 'terminates the json representation with a new line' do
        spec = Specification.new(nil, 'BananaLib')
        spec.to_pretty_json.should.end_with "\n"
      end

      it 'can round-trip' do
        spec = Specification.new do |s|
          s.name = 'BananaLib'
          s.platform = :ios, '9.0'
          s.app_spec 'App'
          s.test_spec 'Tests'
          s.version = '17.0'
          s.swift_versions = %w(5.0)
        end

        json = spec.to_pretty_json

        loaded_spec = Specification.from_json(json)
        new_json = loaded_spec.to_pretty_json

        new_json.should.equal json
      end

      it 'maintains correct order of keys across versions' do
        %w(14 15 16 17 18).each do |version|
          json = File.read(File.expand_path("../../fixtures/CannonPodder#{version}.podspec.json", __FILE__))
          loaded_spec = Specification.from_json(json)
          new_json = loaded_spec.to_pretty_json
          new_json.should.equal json
        end
      end
    end

    #-------------------------------------------------------------------------#

    describe 'Hash conversion' do
      before do
        path = fixture('BananaLib.podspec')
        @spec = Spec.from_file(path)
      end

      it 'can be converted to a hash' do
        hash = @spec.to_hash
        hash['name'].should == 'BananaLib'
        hash['version'].should == '1.0'
      end

      it 'handles subspecs when converted to a hash' do
        hash = @spec.to_hash
        hash['subspecs'].should == [
          {
            'name' => 'GreenBanana',
            'source_files' => 'GreenBanana',
            'dependencies' => { 'AFNetworking' => [] },
          },
          {
            'name' => 'YellowBanana',
            'source_files' => 'YellowBanana',
            'dependencies' => { 'SDWebImage' => [] },
          },
        ]
      end

      it 'handles subspecs with different platforms' do
        subspec = @spec.subspec_by_name('BananaLib/GreenBanana')
        subspec.platforms = {
          'ios' => '9.0',
          'tvos' => '9.0',
        }
        hash = @spec.to_hash
        hash['subspecs'].should == [
          {
            'name' => 'GreenBanana',
            'source_files' => 'GreenBanana',
            'dependencies' => { 'AFNetworking' => [] },
            'platforms' => {
              'ios' => '9.0',
              'tvos' => '9.0',
            },
          },
          {
            'name' => 'YellowBanana',
            'source_files' => 'YellowBanana',
            'dependencies' => { 'SDWebImage' => [] },
          },
        ]
      end

      it 'handles subspecs when the parent spec specifies platforms and the subspec inherits' do
        @spec.platforms = {
          'tvos' => '9.0',
        }
        hash = @spec.to_hash
        hash['subspecs'].should == [
          {
            'name' => 'GreenBanana',
            'source_files' => 'GreenBanana',
            'dependencies' => { 'AFNetworking' => [] },
          },
          {
            'name' => 'YellowBanana',
            'source_files' => 'YellowBanana',
            'dependencies' => { 'SDWebImage' => [] },
          },
        ]
      end

      it 'writes script phases' do
        @spec.script_phases = [
          { :name => 'Hello World', :script => 'echo "Hello World"' },
          { :name => 'Hello World 2', :script => 'echo "Hello World 2"', :execution_position => :after_compile },
          { :name => 'Hello Ruby World', :script => 'puts "Hello Ruby World"', :shell_path => 'usr/bin/ruby' },
        ]
        hash = @spec.to_hash
        hash['script_phases'].should == [
          { :name => 'Hello World', :script => 'echo "Hello World"' },
          { :name => 'Hello World 2', :script => 'echo "Hello World 2"', :execution_position => :after_compile },
          { :name => 'Hello Ruby World', :script => 'puts "Hello Ruby World"', :shell_path => 'usr/bin/ruby' },
        ]
      end

      it 'writes scheme configuration' do
        @spec.scheme = { :launch_arguments => ['Arg1'] }
        hash = @spec.to_hash
        hash['scheme'].should == { 'launch_arguments' => ['Arg1'] }
      end

      it 'writes Info.plist configuration' do
        @spec.info_plist = {
          'CFBundleIdentifier' => 'org.cocoapods.MyAwesomeLib',
          'SOME_VAR' => 'SOME_VALUE',
        }
        hash = @spec.to_hash
        hash['info_plist'].should == {
          'CFBundleIdentifier' => 'org.cocoapods.MyAwesomeLib',
          'SOME_VAR' => 'SOME_VALUE',
        }
      end

      it 'writes test type for test subspec' do
        @spec.test_spec {}
        hash = @spec.to_hash
        hash['subspecs'].should == [
          {
            'name' => 'GreenBanana',
            'source_files' => 'GreenBanana',
            'dependencies' => { 'AFNetworking' => [] },
          },
          {
            'name' => 'YellowBanana',
            'source_files' => 'YellowBanana',
            'dependencies' => { 'SDWebImage' => [] },
          },
        ]
        hash['testspecs'].should == [{
          'name' => 'Tests',
          'test_type' => :unit,
        }]
      end

      it 'writes test type for test subspec in json' do
        @spec.test_spec {}
        hash = @spec.to_json
        hash.should.include '"name":"Tests","test_type":"unit"'
      end

      it 'writes ui test type for test subspec in json' do
        @spec.test_spec do |test|
          test.test_type = :ui
        end
        hash = @spec.to_json
        hash.should.include '"name":"Tests","test_type":"ui"'
      end

      describe 'Dependency Configuration Support' do
        it 'does not write the configuration whitelist for a pod if unspecified' do
          @spec.dependency 'AFNetworking'
          hash = @spec.to_hash
          hash['configuration_pod_whitelist'].should.be.nil
        end

        it 'writes the array string configuration whitelist for a given pod' do
          @spec.dependency 'AFNetworking', :configurations => ['Debug']
          hash = @spec.to_hash
          hash['configuration_pod_whitelist'].should == {
            'AFNetworking' => [
              'debug',
            ],
          }
        end

        it 'writes the array symbol configuration whitelist for a given pod' do
          @spec.dependency 'AFNetworking', :configurations => [:debug]
          hash = @spec.to_hash
          hash['configuration_pod_whitelist'].should == {
            'AFNetworking' => [
              'debug',
            ],
          }
        end

        it 'writes the symbol configuration whitelist for a given pod' do
          @spec.dependency 'AFNetworking', :configurations => :debug
          hash = @spec.to_hash
          hash['configuration_pod_whitelist'].should == {
            'AFNetworking' => [
              'debug',
            ],
          }
        end

        it 'loads the configuration whitelist for a pod' do
          hash = {
            'name' => 'BananaLib',
            'version' => '1.0',
            'dependencies' => { 'AFNetworking' => [] },
            'configuration_pod_whitelist' => { 'AFNetworking' => ['debug'] },
          }
          result = Specification.from_hash(hash)
          result.dependency_whitelisted_for_configuration?(Dependency.new('AFNetworking'), 'debug').should.be.true
        end
      end

      it 'can be loaded from an hash' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
        }
        result = Specification.from_hash(hash)
        result.name.should == 'BananaLib'
        result.version.to_s.should == '1.0'
      end

      it 'can load test specification from hash' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'subspecs' => [{ 'name' => 'GreenBanana', 'source_files' => 'GreenBanana' }],
          'testspecs' => [{ 'name' => 'Tests', 'test_type' => :unit }],
        }
        result = Specification.from_hash(hash)
        result.subspecs.count.should.equal 2
        result.test_specs.count.should.equal 1
        result.test_specs.first.test_specification?.should.be.true
        result.test_specs.first.test_type.should.equal :unit
      end

      it 'can load app specification from hash' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'subspecs' => [{ 'name' => 'GreenBanana', 'source_files' => 'GreenBanana' }],
          'appspecs' => [{ 'name' => 'App' }],
        }
        result = Specification.from_hash(hash)
        result.subspecs.count.should.equal 2
        result.app_specs.count.should.equal 1
        result.app_specs.first.name.should == 'BananaLib/App'
        result.app_specs.first.app_specification?.should.be.true
      end

      it 'can load scheme configuration from hash' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'scheme' => { 'launch_arguments' => ['Arg1'] },
        }
        result = Specification.from_hash(hash)
        result.scheme.should == { :launch_arguments => ['Arg1'] }
      end

      it 'can load script phases from hash' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'script_phases' => [
            { :name => 'Hello World', :script => 'echo "Hello World"' },
            { :name => 'Hello Ruby World', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby' },
          ],
        }
        result = Specification.from_hash(hash)
        result.script_phases.count.should.equal 2
        result.script_phases.should == [
          { :name => 'Hello World', :script => 'echo "Hello World"', :execution_position => :any },
          { :name => 'Hello Ruby World', :script => 'puts "Hello World"', :shell_path => '/usr/bin/ruby', :execution_position => :any },
        ]
      end

      it 'can load on demand resources from a hash' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'on_demand_resources' => {
            'Tag1' => { :paths => 'Tag1Resources/*', :category => :download_on_demand },
            'Tag2' => ['Tag2Resources/*'],
            'Tag3' => 'Tag3Resources/bear.png*',
          },
        }
        result = Specification.from_hash(hash)
        result.on_demand_resources.count.should.equal 3
        result.on_demand_resources.should == {
          'Tag1' => { :paths => 'Tag1Resources/*', :category => :download_on_demand },
          'Tag2' => ['Tag2Resources/*'],
          'Tag3' => 'Tag3Resources/bear.png*',
        }
      end

      it 'can load default subspecs from hash' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'default_subspecs' => 'BananaLibSubSpec',
          'subspecs' => [
            {
              'name' => 'BananaLibSubSpec',
            },
          ],
        }
        result = Specification.from_hash(hash)
        result.default_subspecs.should == ['BananaLibSubSpec']
      end

      it 'can load no default subspecs from hash' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'default_subspecs' => 'none',
          'subspecs' => [
            {
              'name' => 'BananaLibSubSpec',
            },
          ],
        }
        result = Specification.from_hash(hash)
        result.default_subspecs.should == :none
      end

      it 'can load test specification from 1.3.0 hash format' do
        hash = {
          'name' => 'BananaLib',
          'version' => '1.0',
          'subspecs' => [{ 'name' => 'GreenBanana', 'source_files' => 'GreenBanana' }, { 'name' => 'Tests', 'test_type' => :unit }],
        }
        result = Specification.from_hash(hash)
        result.subspecs.count.should.equal 2
        result.test_specs.count.should.equal 1
        result.non_library_specs.count.should.equal 1
        result.app_specs.count.should.equal 0
        result.test_specs.first.test_specification?.should.be.true
        result.test_specs.first.app_specification?.should.be.false
        result.test_specs.first.test_type.should.equal :unit
      end

      it 'can load test specification from 1.3.0 JSON format' do
        json = '{"subspecs": [{"name": "Tests","test_type": "unit","source_files": "Tests/**/*.{h,m}"}]}'
        result = Specification.from_json(json)
        result.test_specs.count.should.equal 1
        result.non_library_specs.count.should.equal 1
        result.app_specs.count.should.equal 0
        result.test_specs.first.test_specification?.should.be.true
        result.test_specs.first.app_specification?.should.be.false
        result.test_specs.first.test_type.should.equal :unit
      end

      it 'can load test specification from json' do
        json = '{"testspecs": [{"name": "Tests","test_type": "unit","source_files": "Tests/**/*.{h,m}"}]}'
        result = Specification.from_json(json)
        result.non_library_specs.count.should.equal 1
        result.test_specs.count.should.equal 1
        result.app_specs.count.should.equal 0
        result.test_specs.first.test_specification?.should.be.true
        result.test_specs.first.app_specification?.should.be.false
        result.test_specs.first.test_type.should.equal :unit
      end

      it 'can load ui test specification from json' do
        json = '{"testspecs": [{"name": "Tests","test_type": "ui","source_files": "Tests/**/*.{h,m}"}]}'
        result = Specification.from_json(json)
        result.non_library_specs.count.should.equal 1
        result.test_specs.count.should.equal 1
        result.app_specs.count.should.equal 0
        result.test_specs.first.test_specification?.should.be.true
        result.test_specs.first.app_specification?.should.be.false
        result.test_specs.first.test_type.should.equal :ui
      end

      it 'can load app specification from json' do
        json = '{"appspecs": [{"name": "App","source_files": "App/**/*.{h,m}"}]}'
        result = Specification.from_json(json)
        result.app_specs.count.should.equal 1
        result.test_specs.count.should.equal 0
        result.non_library_specs.count.should.equal 1
        result.app_specs.first.app_specification?.should.be.true
        result.app_specs.first.test_specification?.should.be.false
      end

      it 'can load script phases from json' do
        json = '{"script_phases": [{"name": "Hello World", "script": "echo \"Hello World\""}]}'
        result = Specification.from_json(json)
        result.script_phases.count.should.equal 1
        result.script_phases.should == [
          { :name => 'Hello World', :script => 'echo "Hello World"', :execution_position => :any },
        ]
      end

      it 'can load on demand resources from json' do
        json = '{"on_demand_resources":{"tag1":{"paths":"Tag1Resources/*","category":"download_on_demand"},"tag2":"Tag2Resources/*","tag3":["Tag3Resources/*"]}}'
        result = Specification.from_json(json)
        result.on_demand_resources.count.should.equal 3
        result.on_demand_resources.should == {
          'tag1' => { 'paths' => 'Tag1Resources/*', 'category' => 'download_on_demand' },
          'tag2' => 'Tag2Resources/*',
          'tag3' => ['Tag3Resources/*'],
        }
      end

      it 'loads script phase execution position from json' do
        json = '{"script_phases": [{"name": "Hello World", "script": "echo \"Hello World\"", "execution_position": "before_compile"}]}'
        result = Specification.from_json(json)
        result.script_phases.count.should.equal 1
        result.script_phases.should == [
          { :name => 'Hello World', :script => 'echo "Hello World"', :execution_position => :before_compile },
        ]
      end

      it 'can load Info.plist configuration from json' do
        json = '{"info_plist": {"CFBundleIdentifier": "org.mycompany.MyLib"}}'
        result = Specification.from_json(json)
        result.info_plist.should == { 'CFBundleIdentifier' => 'org.mycompany.MyLib' }
      end

      it 'can be safely converted back and forth to a hash' do
        result = Specification.from_hash(@spec.to_hash)
        result.should == @spec
      end

      describe 'Swift Version Support' do
        it 'writes swift version in singular form' do
          @spec.swift_version = '1.0'
          hash = @spec.to_hash
          hash['swift_versions'].should == '1.0'
          hash['swift_version'].should == '1.0'
        end

        it 'writes swift version pluralized' do
          @spec.swift_versions = ['1.0']
          hash = @spec.to_hash
          hash['swift_versions'].should == ['1.0']
          hash['swift_version'].should == '1.0'
        end

        it 'does not alter the attribute hash when loading swift versions' do
          @spec.swift_versions = ['4.2', '5.0']
          first_hash = @spec.to_hash
          first_hash['swift_versions'].should == ['4.2', '5.0']
          first_hash['swift_version'].should == '5.0'
          spec_from_hash = Specification.from_hash(first_hash)
          second_hash = spec_from_hash.to_hash
          second_hash['swift_versions'].should == ['4.2', '5.0']
          second_hash['swift_version'].should == '5.0'
        end

        it 'reads swift version from a string' do
          hash = {
            'name' => 'BananaLib',
            'version' => '1.0',
            'swift_versions' => '3.2',
          }
          result = Specification.from_hash(hash)
          result.swift_versions.map(&:to_s).should == ['3.2']
        end

        it 'reads swift version from an array' do
          hash = {
            'name' => 'BananaLib',
            'version' => '1.0',
            'swift_versions' => %w(3.2 4.0),
          }
          result = Specification.from_hash(hash)
          result.swift_versions.map(&:to_s).should == %w(3.2 4.0)
        end

        it 'is backwards compatible with pre 1.7.0 swift version' do
          hash = {
            'name' => 'BananaLib',
            'version' => '1.0',
            'swift_version' => '3.2',
          }
          result = Specification.from_hash(hash)
          result.swift_versions.map(&:to_s).should == %w(3.2)
          result.swift_version.to_s.should == '3.2'
        end

        it 'combines old and new swift version declarations' do
          hash = {
            'name' => 'BananaLib',
            'version' => '1.0',
            'swift_version' => '3.2',
            'swift_versions' => %w(4.0 4.1),
          }
          result = Specification.from_hash(hash)
          result.swift_versions.map(&:to_s).should == %w(3.2 4.0 4.1)
          result.swift_version.to_s.should == '4.1'
        end
      end
    end
  end
end


A Cowl is the perfect cool weather accessory, don't you think? It's just enough to give you a little extra warmth around the neck without all the bulk of a scarf or wrap and many of them have details such as buttons for a bit of extra interest. The Colorscape Cowl falls into this category. It's simple and fun to work up and it has a nice "collar like" styling that is comfortable and looks sophisticated.
The texture in this cowl is achieved with a simple two row repeat that I'm just loving and the colorwork is all courtesy of the yarn! I used Red Heart Colorscape Yarn in the color Bangkok and I love the color transitions. I really enjoyed this yarn. It's a #4 worsted acrylic, but it worked up more like a light bulky. The specs call for a 5.5 mm hook, but I went with something bigger for a bit more drape and softness.
Red Heart has a nice selection of new yarns this season.
Read my yarn reviews HERE to see my favorites!
Make the coordinating Colorcape Cloche for a stylish Autumn set!
Click the photo below for the matching cloche hat pattern.
Each row has 90 sts unless otherwise noted.
Row 1 (right side row): Ch91, sc in 2nd ch from hook, and each remaining ch to end.
Row 2: Ch1, turn, sc in first st, [skip 1 st, sc in next st, working around sc just made (the previous sc will be encased in the second one), sc in skipped st pulling loop to height of working row], repeat between [ ] until 1 st remains, sc in last st.
Row 3: Ch1, turn, sc in first st, [2sc in next st, skip 1 st], repeat between [ ] until 1 st remains, sc in last st.
Rows 4 to 18: Repeat Rows 2 and 3.
Row 19: Ch1, turn sc in each st to end. Do not fasten off.
Row 2: Ch1, turn, sc in each st to end.
Row 4: Ch1, turn, sc in each st and ch to end.
Row 5: Ch1, turn, sc in first st, [skip 1 st, sc in next st, working over sc just made, sc in skipped st pulling loop to height of working row], repeat between [ ] until 1 st remains, sc in last st. Fasten off.
Row 2: Ch1, turn, sc in each st to end. Fasten off.
Sew buttons in place as indicated in diagram below.
I'm confused with the 2nd row….
I'm sorry you are confused. Please send me an email with why you are confused and a photo of your work in progress and I will try to help you.


2015 was a GREAT year in books, and for our personal reading adventures! What could be more fun than reliving it, with a little wrap-up and a forward glance at our bookish 2016.
37 – which is teeny in the grand scheme of book bloggers and lovers all over, but it was a huge reading year for me!
Did you complete your Goodreads challenge?
And then some – boom!
Best book/s you read in 2015?
That's so tough, what a mean question! Going back through the books I rated the highest on Goodreads in 2015, I'd say my favourites were The Girl Who Slept With God, Tiny Beautiful Things (review on its way soon), A Walk In The Woods, Bird Box, and The Magician King (Magicians Series #2).
Book/s you liked the least in 2015?
Go Set A Watchman. It wasn't just the book itself, but the disappointment in not liking it after all the hype and excitement in the lead up to its release, I was really hoping it was going to be something. But given the nature of the book and the facts surrounding its release, I can't blame Harper Lee for my not liking it.
How many books will you aim to read in 2016?
My new Goodreads Challenge is to read 36 books. I would usually try and capitalise on the amount I read in the previous year, but this year I plan to read some books that are more on the chunky side that will take me longer to finish.
What are your other reading aims for this year, or what do you hope to get out of your reading in 2016?
I want to read more of the books from my own shelf rather than giving into temptation and requesting library books on a spur of the moment. I own way too many books that I haven't read!
I'd also like to finish off or at least continue with some series/collections that I'm in progress with – namely the Stieg Larsson "Girl With The" series (I've only read the first book, and I'm not interested in reading The Girl In The Spiders Web, technically it's not by Larsson and that just irks me for some reason), Dan Brown's books, and Stephen King's Gunslinger series.
I'd also like to make a conscious effort to read some Australian fiction, I have some titles in mind already and I can't wait.
High priority books to read in 2016?
All of the books. All of them! I'm currently reading Shantaram, which is a 930-page giant, so finishing that will be a major milestone for me as that book has been intimidating me from my bookshelf for years! There are plenty of authors who I've never read before and would like to try in 2016 – Terry Pratchett, Ursula Le Guin, Donna Tartt, Marilynne Robinson, and Liane Moriarty, to name a few.
As for individual books which have my interest piqued right now – The Natural Way of Things by Charlotte Wood, The Bone Clocks and Slade House by David Mitchell, The Trees by Ali Shaw, and Rain: A Natural and Cultural History by Cynthia Barnett.
I read a total of 21 books this year, which was a huge step up from previous years, while I was a full time university student!!
Oh MAN!! Let me see; Bird Box, The Rosie Project, The Farm, The Magicians, Gone Girl….ok, I'll be here all day.
The two flops for me were Annihilation and The Fever. I had high hopes for both and was sorely disappointed.
I hope to broaden my reading horizons once again, with introducing new genres into my reading and new authors. I am excited to see where I end up, book wise, by the end of 2016.
Ooh….my husband bought me a bunch of books for Christmas (best husband EVER!) and amongst those are The Divergent and Maze Runner series, so I am eager to read both. Also, Illuminae and the newest Gregory Maguire book, After Alice. Watch this space for the reviews!


Figure competition secrets ebook review - does it work?
1. Figure Competition Secrets – What Is It?
2. Figure Competition Secrets Review – How It Works?
5. The Full Package Package?
7. Does Karen Sessions Give Any Support?
Figure Competition Secrets – What Is It?
Figure Competition Secrets book is a product developed by multi-certified personal trainer – Karen Sessions – for women who want to join or get ready for such figure competitions. This Figure Competition Secrets book review collects the ideas of a real user named Kha Ngan. The author, Karen Sessions, claimed that it actually does not matter if users are 20, newbies, or over 40 years old to get benefits from this program. Is it reliable? Kha Ngan, a real user, shares with VKool.com that starting from an overweight woman, after using the book, she now can keep her muscles while the fat melts off.
In Figure Competition Secrets book, Karen Sessions jam packed all the exact figure prep dieting techniques that she used to prepare and quickly win a lot of physique shows. In fact, after many years of trial and errors, the author found the precise method to make an entire figure transformation. Every tip and technique introduced this e-book is real-world tested and proven to work for thousands of figure athletes.
The Figure Competition Secrets book review aims to show that Karen Sessions give away a lot of figure, competition diet, supplement, workout, and peak-week information that can help you build a winning body within only 12 to 15 weeks, even if you are new to figure competition. Indeed, the figure prep diet is considered as the basic foundation to winning a competition. There are so many women using such free diets delivered by unknown source on the Internet. Most of them often end up losing muscles and appear rail-thin and strung-out on stage. With program, you will not have to follow any harsh diet in order to create a well-built body. All you need is to follow exactly an appropriate structured diet, which will slowly reduce calories as well as carbs to gain the dream low body fat, keeping lean muscle.
Figure Competition Secrets Review – How It Works?
Now, you might wonder what are included in this program, right? The entire system of Figure Competition Secrets contains figure prep diet, figure prep training can cardio, figure prep supplements, peal week, figure judging and backstage secrets.
A colorful chart of suit which will match up with your own personal skin tone and hair color. Also, the program uncovers a detailed list of good places to shop for such perfect swimsuit.
In addition, Kha Ngan – a real user – also shared that, thanks to the 12 full weeks of Figure prep training in this Figure Competition Secrets program, she can follow a well-planned schedule which outlined steps she should do to keep her muscle, burn her body fat, and keep the training interesting, and change every 3-4 weeks.
In a nutshell, this Figure Competition Secrets book features a variety of fitness tips and techniques regarding to figure competition. Hence, it is also the reason why there are a variety of testimonials from pleased clients that are claimed on the Internet. This Figure Competition Secrets review wants to let you know that Karen Sessions' program introduces clearly ways on how to prepare carefully and comprehensively for performing in the show. Besides, it also assures learners the fat-reduction part of their daily activities and also their muscles might have the greatest supplements to develop strongly. In other words, within this e-book, learners will explore a constant manner to gain adrenaline coursing using their veins. In fact, hundreds of ladies are now transforming their own bodies simply by using this proven program. With Figure Competition Secrets, it is more than diets, but it can build muscle mass while you can melt off ugly body fat, completely transforming your own physique and making the upcoming contest ready.
So, how much will you pay for such an informative program collecting 25 years of figure competition experience that other people are not ready to share? Today, if you take action right now, you will be able to take full advantage of this special product with just $47, instead of $97 as usual. However, hurry up because this special introductory offer is just available in limited time. So, do not miss this unique chance!
Remember that all of the bonuses above are totally free once your place an order. It does not matter when it is 2:00 morning. So, take the first move right now!
To ensure for the quality of this product, Karen Sessions confidently offer a policy of 60-day full money back guarantee for any unsatisfactory from the clients. That means you have full two months to take advantage of this product without any fee. Hence, there is no risk at all to you when taking a try this product. Believe me!
Does Karen Sessions Give Any Support?
If you have made use of program, then sharing your feeling as well as experience about this book to help others understand more about its efficiency.
For any comments on my Figure Competition Secrets review, leave your ideas at the end of this post.
Now, start your way to winning a figure competition with Figure Competition Secrets here!


text:
Cardiosphere-Derived Stem Cells Improve Function in the Infarcted Rat Heart for 16 Weeks
Stem cells in the heart were first identified in 2003 and since then there has been a great deal of excitement about their potential for use in regenerative therapy. Two clinical trials have been conducted with heart-specific stem cells, SCIPIO and CADUCEUS. Both of these clinical trials were very successful, and further trials might, hopefully, bring this work to the operating room. In the meantime, further work with cardiac stem cells in animals models is necessary in order to clarify the mechanism by which these cells improve the function of an ailing heart.
In light of these findings, Carolyn Carr in Kieran Clarke's lab at the University of Oxford has published an interesting paper in collaboration with Georgina Ellison at the University La Sapienza in Rome. This paper used magnetic resonance imaging (MRI) to examine rats hearts that had suffered a heart attack, and then had been implanted with cardiosphere-derived stem cells (CDCs). The study showed that CDCs not only improve the function of the heart, but do so for an extended period of time.
Cardiospheres are small balls of cells that have been grown from stem cells that are harvested from the heart. The cells are easily isolated from the upper chambers of the heart (atria; see Messina et al., Circulation Research 95 (2004): 911-24), and when the cells grow, they beat in synchrony and strongly attach to each other. The strong attachment of the cells for each other causes them to grow into small balls of cells that can be implanted into a living heart.
When the CDCs are grown in culture, they generate a mixed population of cells that include progenitor cells that express a gene called "c-kit," and heart-specific mesenchymal cells that express a surface proteins called "CD90." Additionally, there are other cells in cultured cardiac cells called explant derived cells (EDCs), which are round and refractory. There is a fair amount of debate as to the nature of these EDCs. Three main papers have demonstrated that EDCs neither form heart muscle nor survive when they are implanted into a living heart (see Shenje LT,et al., Lineage tracing of cardiac explant derived cells. PLoS One. 3(4), 2008:e1929; & Li Z, et al., Imaging survival and function of transplanted cardiac resident stem cells. J Am Coll Cardiol. 53(14), 2009 :1229-40; & Andersen DC,et al., Murine "cardiospheres" are not a source of stem cells with cardiomyogenic potential, Stem Cells. 27(7) 2009, 1571-81). However, other papers have established that EDCs and CDCs can grow in culture and renew themselves (Davis et al., PLoS ONE 4 (2009): e7195; & Chimenti et al., Circulation Research 106 (2010): 971-80; & Davis et al., Journal of Molecular and Cellular Cardiology 49 (2010): 312-21). Other studies have even shown that implantation of EDCs can improve the function of the heart after a heart attack (Shintani, et al., Journal of Molecular and Cell Cardiology 47 (2009): 288-295).
If you are confused by all these conflicting data, join the club because I am too. The clinical studies say that CDCs work to fix a heart, but these animals studies leave us asking if the whole thing is not just a ponzi scheme. This shows us why more animal studies are necessary. Just because something works, does not mean that we know how it works.
In the Carr study, CDCs were isolated from rats and cultured. The cultured tissue yielded CDCs and EDCs that grew well in culture. The CDCs were then labeled with magnetic microspheres to make them easier to detect after transplantation. The CDCs were able to differentiate into heart muscle in culture as determined by their expression of proteins and genes that are specific to heart muscle. Then the rats were given heart attacks, and seven of them received CDC infusions and another seven rats did not. All rats underwent perfusion of the heart, and two days after perfusion, all rats were given CDCs in the tail vein (4 x 10[6] cells). MRI was used to view the heart and assess its function, and to view the CDCs in the heart.
EDCs in the hands of these researchers not only grew and renewed themselves in culture, but they also formed cardiospheres. Most of the cells were mesenchymal stem cells, but others were fibroblasts and a few others were stem cells (3%). Cardiosphere-derived cells expressed several heart-specific genes. It was also clear that labeling the cells with iron microspheres did not affect the cells.
MRI of the heart showed that the untreated hearts were in functional decline, but those that had been treated with CDCs had better functional readings, an a much smaller scar, and had less problems with heart wall that did not move. MRI also showed that the CDCs had integrated into the heart muscle and were a part of the heart muscle wall. They did not have the maturity of adult heart muscle cells in that they were poorly connected with the neighboring cells. However, they did not die but were maintained in the heart for at least 16 weeks. Blood vessel density was also increased in the hearts of the rats that had received the CDC implantations.
Thus, this CDC population, which far more CD90-expressing mesenchymal cells (30%) and fewer c-Kit cells (12%) homed to the site of heart damage and retained for at least 16 weeks. Furthermore, a large proportion of CDCs formed heart muscle, reduced scarring and increased blood vessel synthesis. These features improved the function of the rat hearts and prevented them from deteriorating further. These cells also survived in the heart and did not die. This shows that the EDCs can differentiate into heart muscle cells and preserve long-term function in the infarcted heart. Therefore, we have evidence that the cells in cardiac stem cells can contribute to a damaged heart and help regenerate dead heart muscle.
Posted on April 20, 2012 May 14, 2014 Categories Stem Cell Heart TreatmentsTags health, magnetic resonance imaging, medicine, research, science, university la sapienza

redpajama_set_name: RedPajamaCommonCrawl


Our clients tell us that the thing they appreciate most is that we "meet them where they are" meaning we provide a reasonable starting point to set their strategy in motion versus developing a blue sky strategy with no roadmap.
Capto will push boundaries to meet strategic goals quickly, but we start clients at a realistic point with a clearly sequenced map that is aligned and achievable.
The philosophy of our firm is to work with only a select group of clients at any given time to focus on delivery of your desired results.
Our partners and principals are involved with the real work for every one of our clients. You'll have senior advisors on your job each step of the way and undivided executive dedication to your success.
The execution of strategies is what moves companies beyond their competition. Realizing intended or better outcomes help you win.
The implementation-bias of our team helps your organization achieve its goals. We leverage years of experience across industries to find the best path to the desired results.


text:
Holmes Brew...
Redbull is not the first drink company to use the detective to endorse its products for today in the "Howard Ostrom Collection Holmes and Watson Autograph Collection" comes Keith McConnell . A Multi-median caliber Holmes of many a missed opportunity.
Keith McConnell (1923 - 1987) began playing Holmes in a series of commercials, mainly Schlitz Beer, with Laurie Main (1929 - 2012) as Dr. Watson.
In 1974 he supposedly made a film "Murder In Northumberland" for West End Productions with Anthony Searl as his Dr Watson (Also known as Searle or Seerl ) .
Although where the film was ever broadcast or shown is lost to the sands of time and certainly no commercial copy appears to exist today although production stills evidently exist.
His luck appeared to change though as in 1975 McConnell was asked by Gene Wilder to be Holmes in "Sherlock Holmes Smarter Brother" with Laurie Main playing Watson but a last minute change in filming dates created a conflict with another film he was in and he ending up losing out on the part to Douglas Wilmer.
But another chance to gain a legacy as Holmes would rear its head shortly after for in 1976 McConnell was picked by Neil Simon to play Holmes in his detective satire "Murder by Death" with Richard Peel as Watson. While the small scene at the end of the movie was included in the ABC-TV showing, it tragically was deleted from the DVD due to the demands of some of the larger named actors, who felt the scene without big name actors detracted from their own worth.
Click here to watch the deleted scene on youtube.
But McConnell had a further chance presented to ensure his name would be remembered as a Holmes actor as in 1976 writer/producer/director Frank Saletri, formed PRSCO Productions and began pre production work on "Sherlock Holmes and the Adventure of the Golden Vampire" ( The autographed script for it which you can see within the photo) . The first of 10 comedy-horror films they had on their schedule with McConnell as Holmes and Alice Cooper reportedly in line to play the Vampire .
The film was supposed to have a $700,000 budget and further titles planned for the series were,"The Werewolf of the Baskervilles", "The Black Creature", and "Tor-Men-Tor".
Sadly the films did not reach a production stage and swiftly there after nothing more was heard on them ever again.
However this was not the end of McConnells deer stalking days for In 1980, McConnell once again teamed up with Laurie Main, in an intro to CBS-TV Children's Mystery Theater's "The Treasure of Alpheus T. Winterborn" though when released on VHS was called "The Clue According to Sherlock Holmes". The renaming being a bit misleading as it was a bit part, in which Holmes only finds the first clue and is not seen again.
So it seems Keith McConnell played Sherlock Holmes many times with very little
legacy. Beer commercials, films not released, films not made, scenes deleted.
Sadly it seems Keith McConnell will never be remembered as the great Sherlock Holmes actor he almost was, or was, depending on how you view the facts.
But at least through this article and inducting into "The Howard Ostrom Collection"
we can hopefully finally give him his recognition among the Holmes world.
Article by Howard Ostrom and Ross K Foad
Foot note: - If you have any further details on McConnell's Holmes career or background , The "Murder In Northumberland" film or how we might be able to source his 3 Watson's autographs then please get in touch with Howard Ostrom on howardostrom@yahoo.com or myself via contact form.


text:
package com.example.android.navigationdrawer;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.SearchManager;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;

import com.example.android.common.activities.SampleActivityBase;
import com.example.android.fragmenttransition.FragmentTransitionFragment;

import java.util.Locale;

/**
 * This example illustrates a common usage of the DrawerLayout widget
 * in the Android support library.
 *

 *
When a navigation (left) drawer is present, the host activity should detect presses of
 * the action bar's Up affordance as a signal to open and close the navigation drawer. The
 * ActionBarDrawerToggle facilitates this behavior.
 * Items within the drawer should fall into one of two categories:

 *

 *

 *
View switches. A view switch follows the same basic policies as
 * list or tab navigation in that a view switch does not create navigation history.
 * This pattern should only be used at the root activity of a task, leaving some form
 * of Up navigation active for activities further down the navigation hierarchy.

 *
Selective Up. The drawer allows the user to choose an alternate
 * parent for Up navigation. This allows a user to jump across an app's navigation
 * hierarchy at will. The application should treat this as it treats Up navigation from
 * a different task, replacing the current task stack using TaskStackBuilder or similar.
 * This is the only form of navigation drawer that should be used outside of the root
 * activity of a task.

 *

 *

 *
Right side drawers should be used for actions, not navigation. This follows the pattern
 * established by the Action Bar that navigation should be to the left and actions to the right.
 * An action should be an operation performed on the current contents of the window,
 * for example enabling or disabling a data overlay on top of the current content.

 */
public class NavigationDrawerActivity extends SampleActivityBase implements PlanetAdapter.OnItemClickListener {
    private DrawerLayout mDrawerLayout;
    private RecyclerView mDrawerList;
    private ActionBarDrawerToggle mDrawerToggle;

    private CharSequence mDrawerTitle;
    private CharSequence mTitle;
    private String[] mPlanetTitles;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigation_drawer);

       if (savedInstanceState == null) {
            android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            FragmentTransitionFragment fragment = new FragmentTransitionFragment();
            transaction.add(R.id.content_frame, fragment);

            transaction.commit();
        }

        mTitle = mDrawerTitle = getTitle();
        mPlanetTitles = getResources().getStringArray(R.array.planets_array);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (RecyclerView) findViewById(R.id.left_drawer);

        // set a custom shadow that overlays the main content when the drawer opens
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.END);
        // improve performance by indicating the list if fixed size.
        mDrawerList.setHasFixedSize(true);
        mDrawerList.setLayoutManager(new LinearLayoutManager(this));

        // set up the drawer's list view with items and click listener
        mDrawerList.setAdapter(new PlanetAdapter(mPlanetTitles, this));

        // enable ActionBar app icon to behave as action to toggle nav drawer
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);

        // ActionBarDrawerToggle ties together the the proper interactions
        // between the sliding drawer and the action bar app icon
        mDrawerToggle = new ActionBarDrawerToggle(
                this,                  /* host Activity */
                mDrawerLayout,         /* DrawerLayout object */
                R.drawable.ic_drawer,  /* nav drawer image to replace 'Up' caret */
                R.string.drawer_open,  /* "open drawer" description for accessibility */
                R.string.drawer_close  /* "close drawer" description for accessibility */
        ) {
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(mTitle);
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }

            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(mDrawerTitle);
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }
        };
        mDrawerLayout.setDrawerListener(mDrawerToggle);

        if (savedInstanceState == null) {
            selectItem(0);
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.navigation_drawer, menu);
        return true;
    }

    /* Called whenever we call invalidateOptionsMenu() */
    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // If the nav drawer is open, hide action items related to the content view
        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
        menu.findItem(R.id.action_websearch).setVisible(!drawerOpen);
        return super.onPrepareOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // The action bar home/up action should open or close the drawer.
        // ActionBarDrawerToggle will take care of this.
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action buttons
        switch (item.getItemId()) {
            case R.id.action_websearch:
                // create intent to perform web search for this planet
                Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
                intent.putExtra(SearchManager.QUERY, getActionBar().getTitle());
                // catch event that there's no activity to handle intent
                if (intent.resolveActivity(getPackageManager()) != null) {
                    startActivity(intent);
                } else {
                    Toast.makeText(this, R.string.app_not_available, Toast.LENGTH_LONG).show();
                }
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    /* The click listener for RecyclerView in the navigation drawer */
    @Override
    public void onClick(View view, int position) {
        selectItem(position);
    }

    private void selectItem(int position) {
        // update the main content by replacing fragments
        Fragment fragment = PlanetFragment.newInstance(position);

        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction ft = fragmentManager.beginTransaction();
        ft.replace(R.id.content_frame, fragment);
        ft.commit();

        // update selected item title, then close the drawer
        setTitle(mPlanetTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);
    }

    @Override
    public void setTitle(CharSequence title) {
        mTitle = title;
        getActionBar().setTitle(mTitle);
    }

    /**
     * When using the ActionBarDrawerToggle, you must call it during
     * onPostCreate() and onConfigurationChanged()...
     */

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mDrawerToggle.syncState();
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Pass any configuration change to the drawer toggls
        mDrawerToggle.onConfigurationChanged(newConfig);
    }

    /**
     * Fragment that appears in the "content_frame", shows a planet
     */
    public static class PlanetFragment extends Fragment {
        public static final String ARG_PLANET_NUMBER = "planet_number";

        public PlanetFragment() {
            // Empty constructor required for fragment subclasses
        }

        public static Fragment newInstance(int position) {
            Fragment fragment = new PlanetFragment();
            Bundle args = new Bundle();
            args.putInt(PlanetFragment.ARG_PLANET_NUMBER, position);
            fragment.setArguments(args);
            return fragment;
        }

       @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {

            View rootView = inflater.inflate(R.layout.fragment_planet, container, false);
            int i = getArguments().getInt(ARG_PLANET_NUMBER);
            String planet = getResources().getStringArray(R.array.planets_array)[i];

          int imageId = getResources().getIdentifier(planet.toLowerCase(Locale.getDefault()),
                    "drawable", getActivity().getPackageName());
           ImageView iv = ((ImageView) rootView.findViewById(R.id.image));

         iv.setImageResource(imageId);

            getActivity().setTitle(planet);
            return rootView;
        }
     /* @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          return inflater.inflate(R.layout.fragment_planet, container, false);
      }*/

    }
}

redpajama_set_name: RedPajamaGithub


Employers need employees with certain skills in order to stay relevant and competitive. Employees don't have them. Why? And what can organizations do to future-proof their teams and, ultimately, their company? For starters, they should begin looking for ways to measure their people's skill sets so they know where gaps exist.
Join us for this complimentary Training Industry webinar, presented by Jessi Roesch, operations manager at Degreed, to understand the effects of misplaced skills in your company and discuss a framework for putting the right skills in the right place at the right time.
Understand the symptoms of misplaced skills in your company and the labor market at large.
Understand the business case for correcting misplaced skills in your company.
Learn a framework for putting the right skills in the right place at the right time through talent management and upskilling plans that align with your company's objectives.


Alec Baldwin, who was born Alexander Rae Baldwin III on April 3, 1958 in Amityville, Long Island, New York, has a career acting on stage, film, and television. He has appeared in television series as well as numerous movies. The eldest of the Baldwin brothers, Daniel, Billy, and Stephen, he is possibly better known for his bad behavior than for his acting. In 2007, audio of Alec unleashing a tirade on his 11-year old daughter, calling her a "thoughtless little pig" and disparaging her mother, his former wife Kim Basinger were leaked to the press and played extensively. In 2011, he was escorted off an airliner at LAX for becoming belligerent after being asked to turn off his electronic device; he later made numerous jokes on television shows and in ads. He married Hilaria Thomas in 2012 and they have two daughters, Carmen and Rafael.
Consists of information about Alec Baldwin, his charities, movies, and stories about his awards, including his Oscars.
The official website of Alec Baldwin offers information about his causes, movies, ideas, and credits.
Details about his life, his movies, and his book about his divorce from Kim Basinger are all found on this website, as well as photographs and an interactive guestbook.
Search for Baldwin, Alec on Google, Bing, or Yahoo!


Here's one of the new online games from masters of development, NetEnt. In Japan, Koi fish symbolize love and friendship. Koi Princess new online slots takes you on a zen journey to a peaceful pagoda in Japan. There you'll meet the Koi Princess, whose tranquil lifestyle has clearly led to great wealth, some of which it seems she wants to share with you. With a sublime Manga artistic style, a peaceful atmosphere, and plenty of bonuses and winning chances, this game is a zen delight, for aspiring world travelers and claim bonus and play slots fanatics alike.
You can recognise a NetEnt game from its cinematic style, its self-aware sense of humour, and its powerful playability. Their game concepts are ingenious, and always impressively realised to appeal to all types of slot player. If you love promo's, get the best new slot promotions now.
RANDOM FEATURES – there are four varieties of Random Feature in the game, each of which triggers one Free Spin with a different bonus reward. The 5 Hit Random Feature gives the player's Free Spin gives a guaranteed 5 symbol win with a random symbol and bet line. The Random Wild Feature gives a Free Spin with overlay WILDS. The Wild Reels Feature gives a Free Spin in which 2-5 random reels are totally occupied by overlay WILDS, and the Bonus Activation Feature gives a Free Spin with 3 Bonus symbols, one of which is randombly awarded to the player.
BONUS – this is activated when 3 Bonus symbols appear on reels 1, 3 and 5. Again, there are four different features available. These are 10 Sure Win Free Spins (guaranteeing you some wins), 10 Wild Reels Free Spins with random overlay WILDS, the Bonus Wheel, in which the player clicks on dice to move around a wheel and win rewards, and finally, an Instant Coin Win.
BONUS BET – activating this doubles the cost of each spin, but also increases the chance of Random and Bonus features, and increases a great many of the prize values in these features.


text:
Contact The Dean's Office
The Legacy of Leadership Awards
Canadian Deans Association Accords
The Morning Watch
Statement on Residential Schools
Primary / Elementary
1st Degree Program
2nd Degree Program
2nd Degree - French as a Second Language Program
Intermediate / Secondary
Conjoint with Diploma in Technology Education
Adult Learning and Post-Secondary
Educational Leadership Studies
Post-Secondary Education (Health Professional Ed)
Reading Development and Instruction
Curriculum, Teaching and Learning Studies
Education and Francophone Literature and Cultures
Ph.D. (Education)
Continuing Education, Upgrades and Certifications
Post-Secondary Instructor Certification
Non-Academic Questions
Graduate Scholarships
Course and Registration Info
BEd (Primary/Elementary) 1st Degree
BEd (Primary/Elementary) 1st Degree, Prof. Year
BEd (Primary/Elementary) 1st Degree, Post Prof. Yr
BEd (Primary/Elementary) 2nd Degree
BEd (Intermediate/Secondary)
BEd (Intermediate/Secondary) Conj. w/ Tech. Ed.
Bachelor of Music Education as a Second Degree
Bachelor of Special Education
Post-Secondary Studies
Internships and Observation Days
FAQ field services
Harlow Campus Internships
Harlow Campus
Internship e-Resources
Ceremony of Induction (Fall 2022)
Special Permission Requests
Course and Registration Information
Graduate Spaces
Special Permission Request
Research at the Faculty of Education
Grants Calendar 2022-2023
Information for Researchers
Grants Facilitation
MUN Resources
100th Anniversary Celebrations
A Time! - Celebrating a Century
Call for Presentations / Papers
Concurrent Sessions (AM)
Concurrent Sessions (PM)
Bruneau Centre for Research and Innovation
Emera Innovation Exchange Centre
100 Teacher Stories
Written Stories
Teacher Tales on Tuesdays (Video Stories)
Annual Legacy of Leadership Award
Dialogue Series Session #3 - A Talk with Andy Hargreaves - School Improvement and Student Engagement
Memorial's Faculty of Education and the Newfoundland and Labrador Teachers' Association are proud to announce the continuation of Let's Discuss - A New Dialogue Series on Educational Matters! The series was started in 2020 and explores a variety of topics as they relate to all things education.
The latest instalment will be the first of a full slate of activities planned to celebrate the Faculty of Education's 100th anniversary, and will take place on September 9, 2021 from 7-8:30 p.m. in an in-person/live streamed hybrid format. This event will feature an empowering talk from well-known speaker, author, adviser, and researcher, Dr. Andy Hargreaves, as he discusses his latest book, Five Paths of Student Engagement, followed by a panel discussion featuring researchers and educators.
Members of the public are invited to watch the event live as it is streamed on the Faculty of Education's Facebook page. To view, please visit facebook.com/MemorialEducation/
About Dr. Andy Hargreaves:
Andy Hargreaves is Director of Chenine (Change, Engagement and Innovation in Education) at the University of Ottawa and Research Professor in the Lynch School of Education at Boston College. He is Distinguished Visiting Professor at Hong Kong University and Honorary Professor at Swansea University in the UK.
Andy comes from a Northern mill town in England. When his primary school (Spring Hill, in Accrington) was rebuilt, he was invited back to lay its inscribed foundation stone. He did this with his best teacher, Mary Hindle (almost in her 90s at the time), as she was the one who first inspired him to become an educator.
Andy taught primary school and lectured in several English universities, including Oxford. He then moved to Canada where he became co-founder and director of the International Centre for Educational Change at the Ontario Institute for Studies in Education in Toronto. He has been awarded visiting professorships in the US, Canada, the UK, Hong Kong, Sweden, Spain, Japan, Norway and Singapore. He holds Honorary Doctorates from Scandinavia's oldest university, Uppsala, in Sweden and from The Education University of Hong Kong.
Andy has received the Whitworth Award for outstanding contributions to educational research in Canada, was awarded a writing residency at the Villa Serbelloni in Bellagio, Italy by the Rockefeller Foundation; and is a Fellow of the Royal Society of Arts (FRSA) in the UK. In 2010, he was given the Contribution to Professional Development Award from Learning Forward (formerly the National Staff Development Council) - the organization's "highest honor". He has been honored with the 2016 Horace Mann Award in the US and the Robert Owen Award in Scotland for services to public education. In 2015, Boston College gave him its Excellence in Teaching with Technology Award. From 2017-2019, Andy was elected President of The International Congress for School Effectiveness and Improvement. Andy has been listed by Education Week as being among the leading scholars with most influence on US educational policy debate.
Andy's Outstanding Writing Awards include the 2015 Grawemeyer Award in Education for Professional Capital (with Michael Fullan) in relation to an idea that has potential to change the world, as well as awards from the American Association of Colleges for Teacher Education, the American Educational Research Association, the American Libraries Association and the International Leadership Association.
Andy was founding Editor-in-Chief of and is now Commissioning Editor for the Journal of Professional Capital and Community and was also the founding Editor-in-Chief of the Journal of Educational Change. He has authored or edited more than 30 books. His most recent books are Five Paths of Student Engagement: blazing the trail to learning and success (with Dennis Shirley, 2021), Moving: a memoir of education and social mobility (2020) and Collaborative Professionalism: when teaching together means learning for all (with Michael O'Connor-2018). Andy's current research is on Leading from the Middle to create greater equity, inclusion and wellbeing as well as broader excellence for all students.
Andy's current research, with Jessica Whitley, is a developmental evaluation of educational inclusion policy.
Andy is a researcher, writer, speaker, consultant and policy adviser. He has addressed international organizations such as the World Bank, OECD (the Organization for Economic Co-operation and Development), UNESCO, the Soros Foundation, the WISE Foundation, the European Union, the International Baccalaureate, the International Congress of Principals, the European School Heads Association, Education International, the Universities of Latin America, and the International Congress for School Effectiveness and Improvement. Andy has delivered invited addresses and provided staff development in 47 US states, over 50 countries and all Australian states and Canadian provinces.
Andy's wife, Pauline, is a former school administrator. Their son, Stuart, is an associate professor in law in Hong Kong, and their daughter, Lucy, is a managing partner of a venture capital fund investing in clean technologies. Outside of his work, Andy is a keen long distance hiker, a passionate supporter of Burnley Football Club and always up for a game of pool.
To learn more, visit: andyhargreaves.com
| Last Updated: Oct 11, 2022


If your child is self-conscious about smiling, having braces can greatly improve the way he or she looks and feels.
When treatment is complete, your child will have an amazing, healthy smile, as well as the confidence to show it off! We want you and your child to feel comfortable and confident throughout the entire orthodontic experience, so our practice is dedicated to making sure that your child receives the quality care they deserve.
Gone are the days when a metal band with a bracket was placed around each tooth. Orthodontic patients can now choose brackets that are clear or metallic, and in some cases, customize the color of the appliance. Wires are far less noticeable, and the latest materials are designed to move teeth faster with more comfort.
Depending on several factors, including age, treatment method, and how minor or severe your child's case is, treatment time varies and can last between one and three years. Receiving interceptive, or early treatment, can also help provide a quicker treatment time later on in life. Another big factor to a successful treatment is your child's cooperation. The more involved and diligent your child is, the quicker and more efficient treatment will be.
Before beginning your child's orthodontic care, our doctor will discuss all of your child's options and provide an estimate for how long full treatment may take. Please contact our practice to schedule an appointment and learn more about orthodontics and the treatments we provide.
Traditional metal braces are the most common type of braces and are more comfortable today than ever before. Made of high-grade stainless steel, metal braces straighten teeth by using metal brackets and archwires. With metal braces, there is the option of adding colored elastics (rubber bands) for a more unique and colorful smile.
Ceramic braces are made of clear materials and are therefore less visible on the teeth than metal braces. For this reason, ceramic braces are used mainly on older teenagers who have cosmetic concerns. While they are visually less prominent, they do require more attention to oral hygiene, as ceramic braces are larger and more brittle than their metal counterparts. For these reasons, ceramic braces tend to be used more on upper front teeth rather than on lower teeth.
Clear aligners are a series of invisible, removable, and comfortable acrylic trays that straighten the teeth like braces. Not only are the aligners invisible, they are also removable, allowing your child to eat and drink without concern while in treatment. Plus, this helps to make brushing and flossing less of a hassle. The aligners are comfortable and have no metal to cause mouth abrasions during treatment.
Lingual braces are hidden behind the teeth and are therefore "invisible" when your child smiles. Lingual braces are 100% customized to match the shape of the teeth. Lingual braces are a very reasonable option for athletes, models, actors/actresses, and musicians who play wind instruments.


Any contact numbers for those of us traveling?? Hate to drive 5 hours and then not be able to locate anyone…….
Ok. We have had our first gathering of the Oklahoma members of the forum with the addition of one Texas member. We was fortunate to have two who have attended MVT training in Texas. With their(Dave37 & Wheelsee) leadership we practiced RTRs contact left, right & rear, We also worked on buddy pair and four man team (two buddy pair) bound forward and bound to the rear drills.
We are going to schedule another training date early Oct around Shawnee OK details to follow.
MrB & Areohawk we hope you all can attend in Oct.
Picture of the Texohma Timberwolves.
It was a pleasure gents….


Not many recognize or know that Calabar happens to be the first capital of Nigeria. But before Lagos, and eventually Abuja, Calabar was the seat of government in Nigeria where the colonial government administered from. Set on a hill overlooking the Calabar and Kwa Rivers, Calabar, the capital of Cross River state, is one of the most beautiful cities in Nigeria and is a top destination for tourist and adventure seekers. This is art due to the fact that Calabar is home to Obudu Cattle Ranch or Obudu Mountain Resort as it is known nowadays. Calabar is host to the Tinapa Resort which is a business and leisure resort and the Calabar Free Trade Zone the hub of manufacturing, trading, essential services as well as laying host to oil and gas companies. Every year, in December, Calabar holds the Calabar Carnival famed as Africas biggest street party which features troupes from all over the country in a massive colorful display of culture, creativity in the design of attires and an elaborate fanfare.
You can get expensive and budget-friendly event venues at Calabar at discounted rates, compare venue prices, see venue pictures, confirm availability and request to book on ogaVenue.
Some of the popular venues in Calabar include Dannic Hotels Hall and Marian Hotels event Hall .
Calabar never lacks creative service professional. There are a bunch of event service professionals otherwise called vendors (Photographers in Calabar, Caterers in Calabar, Decorators in Calabar etc) who will bring your event to life.
You can view photos of their previously completed jobs, customer reviews and get free price estimates from event vendors in Calabar.
See Price of Halls in Calabar, Decoration Prices in Calabar, Cost to hire a Photographer in Calabar, Make-up Prices in Calabar, Cost to hire a Caterer in Calabar and Cake Prices in Calabar.


You're perusing the aisles at your favorite store and all the sudden, you're slipping and hitting the floor. It's estimated that 25,000 people are injured from slip and fall accidents each day. If you find yourself dazed and injured after a slip and fall in a store, you need to know what not to do.
Here are a few things you should never do after a slip and fall at a store.
It's not uncommon to suffer a serious injury from slipping and falling on the floor, especially if you are elderly. If you are seriously injured and cannot move, or struck your head and suffer a minor or major trauma, do not attempt to stand up. The signs of a serious head injury include vomiting, losing consciousness, issues with balance or coordination, serious headache, and seizures.
If you suffer from any of these symptoms, are having trouble moving, or are in serious pain, call 9-1-1 immediately. After the fall, if you are able to move or have suffered only minor injuries, you still may want to call 9-1-1. Contacting the authorities immediately and seeking help rather than walking away from the scene can be used as proof that the slip and fall accident caused your injuries.
After the ambulance arrives and you are taken to the hospital, tell the physician the details of the slip and fall, including any injuries you sustained and pain you are experiencing. Do not overlook any minor discomfort. Even if those discomforts are not serious now, the pain could worsen with time.
The doctor will take detailed notes about your condition. These notes can be valuable if you file a lawsuit against the store.
The aftermath of a slip and fall can be confusing, but you need to be sure not to skip one of the most important steps: reporting the incident to the store's manager or human resources representative. However, before doing so, have an attorney with you to make sure you don't say something or have a statement recorded that would damage your case.
The store may have their own form that requires you to give specific details about the event and your injuries. Do not exaggerate your injuries or lie. Instead, tell them exactly what happened and what injuries you sustained.
Depending on the severity of your injuries, you might be feeling better after a few days, or it could take you weeks or months to recover. Either way, continue seeing your doctor and following their orders explicitly. Do not miss an appointment, go back to work, or do anything that could exacerbate your injuries until you are cleared by your physician.
If you are allowed to go back to work and the doctor has placed restrictions on your activities, follow these orders. Ignoring your doctor's orders or skipping your appointments could be used against you if you decide to file a lawsuit.
The attorneys representing the store or its owners could argue that because you returned to work too early or didn't follow the doctor's orders, the injuries you sustained during the slip and fall incident were not that severe.
Finally, if you decide to file a lawsuit, do not attempt to take on this massive and confusing task on your own. After asking you several questions, your attorney will begin by determining if you have a strong case. To proceed and win your case, the attorney will need to prove that the store's negligence led to your injuries.
For example, if there was a spill on the floor and it was not cleaned up promptly or no signs were placed warning customers about the spill, the attorney could argue the store or its employees were negligent. Your attorney can also help you determine the types of damages you are entitled to. For example, you may be compensated for your pain, suffering, the cost of your medical bills, and lost wages.
Slip and fall injuries are very common and unfortunately, you may find yourself the victim of a store's negligence. If you are ever injured in a slip and fall, or have any other questions, do not hesitate to contact the professionals at Clearfield & Associates.


text:
Utilizing Adprufe®, UK Shopping Center Opens on Time
Integrally waterproof concrete elements make the UK shopping center watertight.
Westfield Stratford City shopping centre
Westfield Group
Robert Bird Group & Arups
Fletcher Priest & AHMM
PC Harrington
Quickseal (Volkerlaser)
Adprufe® integrally waterproof concrete, Preprufe® waterproofing, Bituthene® waterproofing
Located adjacent to the London Olympic Park, Westfield Stratford City shopping center, is one of the largest urban shopping centers in the UK and Europe.
This high profile commercial project for GCP Applied Technologies, involved elements of commercial building construction with over 1.5 million sq ft of retail space, tunneling work for London Underground railways and public exposed terrace areas.
The UK shopping center, owned by the Westfield Group, opened in September 2011.
"Preprufe® 300R is a unique membrane consisting of a robust film of high-density polyethylene (HDPE), impermeable to water, water vapour and gases, and combined with a special multilaminar matrix."
The retail design specified Grade 4 waterproofing protection, with specific requirements for gas protection.
Design requirements were for habitable areas throughout the shopping center, with considerable external surface areas for public access, together with elements of London Underground tunnel and box areas over the North Ticket Hall roof.
There were also commercial building pressures for the project to be completed in time for the 2011 opening. Many separate parties were involved, requiring close supervision by the GCP team.
For the shopping center, they used Adprufe® integrally waterproof concrete elements to simplify technical aspects, particularly around pile caps, which, in turn, helped to speed up the construction schedule for contractors.
Preprufe® 300R and Bituthene® 8000 waterproofing membranes were applied to the basement, slabs, walls, pile caps and external surfaces.
Preprufe® and Bituthene® membranes are fully and intimately bonded to the structural concrete providing the required grade of waterproofing barrier, and a fully waterproofed system. Both products are suitable for protecting against the effects of water, damp and gas penetration in a commercial building.
About Preprufe and GCP
Preprufe® 300R is a unique membrane, consisting of a robust film of high density polyethylene (HDPE), impermeable to water, water vapour and gases, combined with a special multilaminar matrix. This matrix on one side of the membrane develops a strong capacity for adhesion when loaded by the pressure of freshly poured concrete during the pouring and successive hardening phases.
GCP has a long established and strong relationship, built over a period of more than 25 years, with the consulting engineers and main and sub-contractors involved with the project. Team members worked together to achieve their aim of securing maximum business potential from the project and were supportive of their customers and each other throughout a complicated process.
Blue360sm Total Business Advantage: The power of GCP products, performance and people.
https://ca.gcpat.com/en/about/project-profiles/utilizing-adprufe-uk-shopping-center-opens-time


text:
US 6th Cir./
HARDESTY v. KROGER COMPANY LLC
HARDESTY v. KROGER COMPANY LLC (2019)
United States Court of Appeals, Sixth Circuit.
Joseph HARDESTY, Plaintiff-Appellant, v. KROGER COMPANY; Kroger G.O., LLC, Defendants-Appellees.
Decided: January 23, 2019
BEFORE: CLAY, COOK, and LARSEN, Circuit Judges. Peter Andrew Saba, Jeffrey M. Nye, Joshua Michael Smith, Sharon J. Sobers, Stagnaro, Saba & Patterson, Cincinnati, OH, for Plaintiff-Appellant David Kirsten Montgomery, Ryan Michael Martin, Jackson Lewis, Cincinnati, OH, for Defendants-Appellees
After Kroger fired Joseph Hardesty, a fifty-year-old white male, he sued the company for race and sex discrimination under Title VII, 42 U.S.C. § 2000e et seq., and age discrimination under the Age Discrimination in Employment Act, 29 U.S.C. § 621, et seq., and an analogous Ohio law, Ohio Rev. Code Ann. § 4112.02. The district court granted Kroger summary judgment, finding that Hardesty failed to rebut as pretext the company's proffered legitimate reason for terminating his employment. For the reasons that follow, we affirm.
Hardesty worked as a "mass hire" recruiter for Kroger's Center of Recruiting Excellence. When a newly-opened Kroger supermarket needs to fill a substantial number of its entry-level positions, these recruiters screen applications from job candidates and schedule interviews over the phone.
About six months into Hardesty's tenure at Kroger, Briana Whitlow, one of Hardesty's coworkers, reported that she walked by Hardesty's desk one day, saw his phone system light up to reflect an inbound call, and observed him decline (or "release") it in favor of finishing a conversation with fellow recruiter Aretha O'Aku. Whitlow mentioned the incident to her supervisor, Daniele Williams, and then followed up with a formal email complaint detailing her allegation this way:
As I was speaking with Carly about scheduling a candidate, I noticed Joe was releasing calls (hanging up on candidates) that were coming through to his phone while he was in mid conversation with Aretha. I just wanted to inform you. This was roughly between 3:15pm and 3:30pm today. Thanks!
R. 57-11, PageID 2876.
Even though Kroger recruiters work in a call center, they, like in-store employees, must comply with Kroger's "customer first" policy, treating job candidates as if they were ordinary customers and providing them with exceptional service. Accordingly, Whitlow's information got Williams's attention. Williams first requisitioned Hardesty's call logs, but learned that Kroger's system could not retrieve data on individual calls, only a recruiter's daily averages, and therefore could not conclusively verify whether he declined an incoming call. Still, Williams gathered and reviewed several reports detailing the average call times for Hardesty, the mass hire team generally, and the entire Center for Recruiting Excellence.
Upon analyzing the data, Williams concluded that Hardesty posted "considerably" shorter call times as compared to the rest of his team—"an average talk time of 1 min and 46 seconds" where his team averaged 5 minutes. Williams met with Hardesty, asking whether he had been experiencing problems with his phones, or could otherwise explain the anomaly. He responded that he was not having any phone issues (though his phone had occasionally dropped calls in the past) and that he just spoke more quickly than his peers. The interview did not assuage Williams's concerns, instead reaffirming her conviction that Hardesty wasn't properly screening job applicants. Around the same time, Williams spoke with O'Aku, who hadn't noticed the incident and therefore could not corroborate Whitlow's accusation.
Williams then consulted with her manager, Rana Schiff, and her partner in human resources to discuss Whitlow's report and the status of her investigation. In an email to human resources, Williams stated that Whitlow saw Hardesty release at least "three calls," and recommended termination because Kroger brooks "no tolerance for [its] recruiters to hang up on customers." Human resources agreed. Williams spoke with Schiff one last time to report her findings and verify that she'd covered her bases.
The following week, Williams met with Hardesty, confronted him with the accusations and her research, and offered him the choice to resign rather than be terminated. Hardesty chose to personally speak both with Schiff and the director of the recruiting center—each of whom reviewed even more granular phone data before concluding that Hardesty had likely hung up on an incoming call and could not remain at Kroger—before he chose termination. This suit followed.
The district court granted Kroger's motion for summary judgment, finding that Hardesty failed to satisfy his burden to produce evidence showing that Kroger fired him because he was white, male, or fifty. He appeals.
"We review a district court's grant of summary judgment de novo," Michael v. Caterpillar Fin. Servs. Corp., 496 F.3d 584, 593 (6th Cir. 2007), viewing the entire record in a light most favorable to the party opposing summary judgement and drawing all reasonable inferences in that party's favor, Matsushita Elec. Indus. Co. v. Zenith Radio Corp., 475 U.S. 574, 587, 106 S.Ct. 1348, 89 L.Ed.2d 538 (1986). An entry of summary judgment stands only if "the movant shows that there is no genuine dispute as to any material fact and the movant is entitled to judgment as a matter of law." Fed. R. Civ. P. 56(a).
When a plaintiff cannot produce direct evidence of employment discrimination, McDonnell Douglas requires analyzing from a three-part framework whether the plaintiff's claims should survive summary judgment. Martin v. Toledo Cardiology Consultants, Inc., 548 F.3d 405, 410 (6th Cir. 2008). A plaintiff must first make out a prima facie case of discrimination. Then the burden shifts to the employer to articulate a legitimate, nondiscriminatory reason for its adverse employment decision. If the employer does so, the plaintiff prevails only if he proves "either (1) that the proffered reasons had no basis in fact, (2) that the proffered reasons did not actually motivate [the plaintiff's] discharge, or (3) that they were insufficient to motivate discharge." Russell v. Univ. of Toledo, 537 F.3d 596, 604 (6th Cir. 2008) (quotation omitted). No matter the path chosen, the plaintiff retains the ultimate burden of producing "sufficient evidence from which the jury could reasonably reject [the employer's] explanation and infer" intentional discrimination. Braithwaite v. Timken Co., 258 F.3d 488, 493 (6th Cir. 2001) (internal quotation omitted).
One catch. We evaluate an employer's intent in discrimination suits. Thus, if an employer "honestly believes" its proffered nondiscriminatory reason, we do not infer pretext just because the reason proves "mistaken, foolish, trivial, or baseless." Smith v. Chrysler Corp., 155 F.3d 799, 806 (6th Cir. 1998). "In other words, arguing about the accuracy of the employer's assessment is a distraction because the question is not whether the employer's reasons for a decision are right but whether the employer's description of its reasons is honest." Id. (internal quotations omitted). A belief is honestly held so long as the employer can "establish its reasonable reliance on the particularized facts that were before it at the time the decision was made." Id. at 807. The employee must then produce "proof to the contrary" that challenges the foundation of the employer's belief or lose on summary judgment. Id.; see also Braithwaite, 258 F.3d at 494.
Neither party contests that Hardesty established a prima facie case of age, race, and sex discrimination under McDonnell Douglas's burden-shifting framework. Nor do they dispute that Kroger presented a legitimate, nondiscriminatory reason for terminating Hardesty—namely, his violation of Kroger's customer first policy. Instead, Hardesty chiefly takes issue with the district court's decision to credit Kroger's "honest belief" in its nondiscriminatory reason and to conclude that Hardesty failed to raise a genuine issue of material fact as to whether Kroger's rationale served as pretext. Hardesty argues both that Williams did not subjectively believe that Hardesty released incoming calls and did not perform an objectively reasonable investigation. These arguments fail.
Hardesty describes how Williams incorrectly relayed that Whitlow reported at least three dropped calls rather than just two 1 in her email to human resources where she explained that she already "believe[d] a termination should occur," and claims that these "lies" about the number of released calls create a genuine issue of material fact and show that her reason was pretextual. But these inconsistencies do not prove that Williams did not subjectively believe her proffered rationale—that he had violated the customer first policy. Hardesty's own briefing in response to Kroger's motion for summary judgment acknowledges that during his termination, Williams explained that he had been accused of releasing only one inbound call. Declining even one such call constitutes a violation of Kroger's customer first policy and warrants termination. And though she asked human resources for advice, any miscommunication there does not change the result; Williams retained full authority to terminate Hardesty's employment and already suspected that she ought to fire him.
Hardesty claims that Williams again lied when she failed to document that O'Aku couldn't corroborate Whitlow's accusation. These lies, Hardesty explains, evince bad faith and a consciousness of guilt sufficient to create a genuine issue of material fact. This point is not well taken. Even assuming that O'Aku's inability to corroborate the accusation can be fairly read to refute it, investigations often produce conflicting evidence, requiring an employer to evaluate credibility and weigh various pieces of information. Just because an employer must choose between inconsistent accounts "does not mean that there inevitably is a genuine issue of fact concerning the employer's good faith." Alvarez v. Des Moines Bolt Supply, Inc., 626 F.3d 410, 417 (8th Cir. 2010). And again, Williams need not have mentioned any of her findings to human resources at all. Hardesty ultimately asks us to infer that Williams lied because she did not honestly believe that he had declined an incoming call. Summary judgment "does not allow, much less require that we draw [such] strained and unreasonable inferences in favor of the nonmovant." Audi AG v. D'Amato, 469 F.3d 534, 545 (6th Cir. 2006) (quotation omitted).
Attacking Williams for relying on call length data likewise does nothing for Hardesty's argument. Williams testified that she knew the phone logs could not directly substantiate Whitlow's account, but she believed exceptionally short call times could reflect a pattern of dishonest behavior and reveal a practice of failing to properly screen applicants or disconnecting calls. After digesting the records and Hardesty's unsatisfying explanation that he simply talked faster than his peers, she concluded that Whitlow's account rang true. Further, Hardesty's reference to a confusing, out-of-context statement in Williams's deposition also cannot create a genuine issue of material fact. See R. 30, PageID 605 ("At [the] time [that I was terminating Hardesty] I don't know if I could say I believed him or I didn't. I listened to what he was saying."). Williams's stating that she couldn't remember what she was thinking while listening to Hardesty deny releasing any calls also does not prove that she didn't believe he had. The record reflects numerous places where Williams expressed that she trusted Whitlow's account well before and well after discussing the accusations with Hardesty.
Nor does this "evidence" prove that Williams did not reasonably rely on the information she'd gathered when deciding that Hardesty's actions violated Kroger's customer first policy and warranted termination. Could she have done more to determine whether Whitlow actually observed Hardesty releasing calls? Tracked down surveillance footage to confirm that Whitlow walked by Hardesty's cubicle that afternoon? Perhaps. But when we evaluate the honesty of an employer's belief, we do not require evidence of an optimal decisional process or a scorched-earth investigation. Smith, 155 F.3d at 807. "[T]he key inquiry is whether the employer made a reasonably informed and considered decision before taking an adverse employment action." Id.
Hardesty's own submissions document how completely Williams investigated the issue. She spoke to all potential witnesses, scrutinized Hardesty's call logs for any suspicious patterns, sought advice from her colleagues in human resources and operations, and met with Hardesty to clarify why his logs reflected such short phone calls as compared to his team's average. After reviewing all the data she believed available, she concluded that Hardesty likely released at least one incoming call and determined that this warranted immediate termination. "That [Hardesty] or the court might have come to a different conclusion if they had conducted the investigation is immaterial." Seeger v. Cincinnati Bell Tel. Co., 681 F.3d 274, 287 (6th Cir. 2012). He has offered no evidence proving this decisional process "unworthy of credence," Wright v. Murray Guard, Inc., 455 F.3d 702, 708 (6th Cir. 2006), and our cases instruct that this level of diligence suffices, see, e.g, Seeger, 681 F.3d at 286 (affirming summary judgment for employer who fired an employee over alleged disability fraud when eyewitnesses saw the plaintiff with a herniated disk walking without pain for a short distance where other witnesses disagreed and even plaintiff's doctor attested that similarly disabled patients who cannot work a full eight-hour day could walk comfortably for an hour and a half); Loyd v. Saint Joseph Mercy Oakland, 766 F.3d 580, 597 (6th Cir. 2014) (affirming grant of summary judgment where only one of two inconsistent witness statements and an incident report corroborated allegations against employee); cf. Shazor v. Prof'l Transit Mgmt., Ltd., 744 F.3d 948, 960 (6th Cir. 2014) (noting that an investigation where an employer interviews only one witness could turn up particularized facts sufficient to decide an employee engaged in misconduct); Yazdian v. ConMed Endoscopic Techs., Inc., 793 F.3d 634, 654 (6th Cir. 2015) (reversing grant of summary judgment where the employer conducts no investigation).
Finally, even accepting the results of Williams's investigation, Hardesty claims that his alleged misconduct did not warrant termination. He argues that similarly situated employees were not terminated, Kroger ignored its own routine disciplinary policies when it chose to fire him, and Williams should not have terminated his employment because of one unfounded complaint. To be similarly situated, "the plaintiff and his proposed comparator must have engaged in acts of comparable seriousness." Wright, 455 F.3d at 710 (internal quotations omitted). But here, the comparator was not "similarly situated" because management did not believe that her actions violated company policy or warranted punitive action.
Challenging Kroger's interpretation of its own disciplinary guidelines also does not create a genuine issue of material fact regarding pretext. The Kroger policy notes that, "[g]enerally, routine problems with an office associate are discussed and corrected on a day to day basis." Hardesty argues that because Kroger's policy does not define "routine," a jury should evaluate it and determine whether Williams ought to have first discussed and corrected his behavior before firing him. Kroger, on the other hand, contests that hanging up on a customer presents non-routine difficulties where the general policy does not apply. Not a single Kroger employee involved in Williams's investigation ever questioned whether hanging up on a customer merited termination. And "disputes about the interpretation of company policy do not typically create genuine issues of material fact regarding whether a company's stated reason for an adverse employment action is only a pretext designed to mask unlawful discrimination." Sybrandt v. Home Depot, U.S.A., Inc., 560 F.3d 553, 558–59 (6th Cir. 2009); see also Allen v. Highlands Hosp. Corp., 545 F.3d 387, 398 (6th Cir. 2008).
Finally, though Hardesty protests that his firing was unfounded and unfair, a court does not sit as a "super-personnel department," second-guessing management decisions. Krenik v. County of Le Sueur, 47 F.3d 953, 960 (8th Cir. 1995) (quotation omitted); see also Smith v. Leggett Wire Co., 220 F.3d 752, 763 (6th Cir. 2000) ("[I]t is inappropriate for the judiciary to substitute its judgment for that of management."). In other words, though some might think Hardesty's punishment too severe, Kroger can implement as strict a disciplinary policy as it wants so long as it doesn't weaponize that policy as pretext for discrimination. Without well-grounded evidence of pretext, Hardesty's claim must fail.
Hardesty did not carry his burden under McDonnell Douglas of proving that Kroger's proffered nondiscriminatory reason for firing him was pretextual. Thus, the district court did not err in granting Kroger's motion for summary judgment. We AFFIRM.
1. Whitlow's email states that she observed Hardesty "releasing calls," not "releasing at least three calls." Reading this in a light most favorable to Hardesty, as we must, attention to grammatical conventions suggests that Whitlow meant at least two calls.
COOK, Circuit Judge.