text:
/* global chai */
/* global sinon */
/* global describe */
/* global it */

import {
  requiresChrome,
  requireAuth,
  requireAuthAndNoPatient,
  requireNoAuth,
  requireNotVerified,
  onUploaderPasswordReset,
  hashToUrl,
  onIndexRouteEnter,
  onOtherRouteEnter,
  onLogoutEnter,
  ensureNoAuth
} from '../../app/routes';
import React from 'react';
import TestUtils from 'react-addons-test-utils';
import createHistory from 'history/lib/createMemoryHistory';
import { Router } from 'react-router'
import config from '../../app/config';

var expect = chai.expect;

describe('routes', () => {
  describe('requiresChrome', () => {
    it('should not redirect and call next when isChrome is true', () => {
      let utils = {
        isChrome: sinon.stub().returns(true)
      };

      let next = sinon.stub();
      let replace = sinon.stub();
      let nextState = {};
      let cb = sinon.stub();

      requiresChrome(utils, next)(nextState, replace, cb);

      expect(utils.isChrome.callCount).to.equal(1);
      expect(replace.callCount).to.equal(0);
      expect(cb.callCount).to.equal(0);
      expect(next.withArgs(nextState, replace, cb).callCount).to.equal(1);
    });

    it('should redirect and call cb when isChrome is false', () => {
      let utils = {
        isChrome: sinon.stub().returns(false)
      };

      let next = sinon.stub();
      let replace = sinon.stub();
      let nextState = {};
      let cb = sinon.stub();

      requiresChrome(utils, next)(nextState, replace, cb);

      expect(utils.isChrome.callCount).to.equal(1);
      expect(replace.withArgs('/browser-warning').callCount).to.equal(1);
      expect(cb.callCount).to.equal(1);
      expect(next.callCount).to.equal(0);
    });
  });

  describe('requireAuth', () => {
    it('should update route to /login if user is not authenticated', (done) => {
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(false)
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuth(api, store)(null, replace, () => {
        expect(replace.withArgs('/login').callCount).to.equal(1);
        done()
      });
    });

    it('should not update route if user is authenticated and has accepted the latest terms', (done) => {
      config.LATEST_TERMS = '2014-01-01T00:00:00-08:00';
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true),
          get: (cb) => {
            cb(
              null,
              {
                userid: 'a1b2c3',
                profile: {
                  patient: {}
                },
                termsAccepted: '2015-01-01T00:00:00-08:00'
              }
            );
          }
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuth(api, store)(null, replace, () => {
        expect(replace.callCount).to.equal(0);
        done();
      });
    });

    it('[ditto &] should use state from the store instead of calling the API when available', (done) => {
      config.LATEST_TERMS = '2014-01-01T00:00:00-08:00';
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true),
          get: sinon.stub()
        }
      };

      let store = {
        getState: () => ({
          blip: {
            allUsersMap: {
              a1b2c3: {
                userid: 'a1b2c3',
                profile: {
                  patient: {}
                },
                termsAccepted: '2015-01-01T00:00:00-08:00'
              }
            },
            loggedInUserId: 'a1b2c3'
          }
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuth(api, store)(null, replace, () => {
        expect(replace.callCount).to.equal(0);
        expect(api.user.get.callCount).to.equal(0);
        done();
      });
    });

    it('should update route to /terms if user is authenticated and has not ever accepted the terms', (done) => {
      config.LATEST_TERMS = '2014-01-01T00:00:00-08:00';
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true),
          get: (cb) => {
            cb(
              null,
              {
                userid: 'a1b2c3',
                profile: {
                  patient: {}
                },
                termsAccepted: ''
              }
            );
          }
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuth(api, store)({location: {pathname: 'test'}}, replace, () => {
        expect(replace.withArgs('/terms').callCount).to.equal(1);
        done();
      });
    });

    it('should update route to /terms if user is authenticated and has not accepted the latest terms', (done) => {
      config.LATEST_TERMS = '2014-01-01T00:00:00-08:00';
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true),
          get: (cb) => {
            cb(
              null,
              {
                userid: 'a1b2c3',
                profile: {
                  patient: {}
                },
                termsAccepted: '2013-12-30T00:00:00-08:00'
              }
            );
          }
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuth(api, store)({location: {pathname: 'test'}}, replace, () => {
        expect(replace.withArgs('/terms').callCount).to.equal(1);
        done();
      });
    });
  });

  describe('requireAuthAndNoPatient', () => {
    it('should update the route to /login if the user is not authenticated', (done) => {
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(false)
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuthAndNoPatient(api, store)(null, replace, () => {
        expect(replace.withArgs('/login').callCount).to.equal(1);
        done();
      });
    });

    it('should update the route to /patients if the user is authenticated and already has accepted TOS and has data storage set up', (done) => {
      let api = {
        user: {
          get: (cb) => {
            cb(
              null,
              {
                userid: 'a1b2c3',
                termsAccepted: '2016-01-01T05:00:00-08:00',
                profile: {
                  patient: {}
                }
              }
            );
          },
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuthAndNoPatient(api, store)(null, replace, () => {
        expect(replace.withArgs('/patients').callCount).to.equal(1);
        done();
      });
    });

    it('[ditto &] should use state from the store instead of calling the API when available', (done) => {
      let api = {
        user: {
          get: sinon.stub(),
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {
            allUsersMap: {
              a1b2c3: {
                userid: 'a1b2c3',
                termsAccepted: '2016-01-01T05:00:00-08:00',
                profile: {
                  patient: {}
                }
              }
            },
            loggedInUserId: 'a1b2c3'
          }
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuthAndNoPatient(api, store)(null, replace, () => {
        expect(replace.withArgs('/patients').callCount).to.equal(1);
        expect(api.user.get.callCount).to.equal(0);
        done();
      });
    });

    it('should update the route to /terms if the user has not yet accepted the TOS', (done) => {
      let api = {
        user: {
          get: (cb) => {
            cb(null, {
              userid: 'a1b2c3',
              termsAccepted: ''
            });
          },
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuthAndNoPatient(api, store)(null, replace, () => {
        expect(replace.withArgs('/terms').callCount).to.equal(1);
        done();
      });
    });

    it('should update the route to /terms if the user has not yet accepted the TOS', (done) => {
      let api = {
        user: {
          get: sinon.stub(),
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {
            allUsersMap: {
              a1b2c3: {
                userid: 'a1b2c3',
                termsAccepted: ''
              }
            },
            loggedInUserId: 'a1b2c3'
          }
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuthAndNoPatient(api, store)(null, replace, () => {
        expect(replace.withArgs('/terms').callCount).to.equal(1);
        expect(api.user.get.callCount).to.equal(0);
        done();
      });
    });

    it('should not update the route if the user is authenticated and does not have data storage set up', (done) => {
      let api = {
        user: {
          get: (cb) => {
            cb(
              null,
              {
                userid: 'a1b2c3',
                termsAccepted: '2016-01-01T05:00:00-08:00',
                profile: {
                  about: 'Foo bar'
                }
              }
            );
          },
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuthAndNoPatient(api, store)(null, replace, () => {
        expect(replace.callCount).to.equal(0);
        done();
      });
    });

    it('[ditto &] should use state from the store instead of calling the API when available', (done) => {
      let api = {
        user: {
          get: sinon.stub(),
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {
            allUsersMap: {
              a1b2c3: {
                userid: 'a1b2c3',
                termsAccepted: '2016-01-01T05:00:00-08:00',
                profile: {
                  about: 'Foo bar'
                }
              }
            },
            loggedInUserId: 'a1b2c3'
          }
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireAuthAndNoPatient(api, store)(null, replace, () => {
        expect(replace.callCount).to.equal(0);
        expect(api.user.get.callCount).to.equal(0);
        done();
      });
    });
  });

  describe('ensureNoAuth', () => {
    it('should call api.user.logout', () => {
      let api = {
        user: {
          logout: sinon.stub().callsArg(0)
        }
      };

      let cb = sinon.stub();

      ensureNoAuth(api)(null, null, cb);

      expect(api.user.logout.callCount).to.equal(1);
      expect(cb.callCount).to.equal(1);
    });
  });

  describe('requireNoAuth', () => {
    it('should update route to /patients if user is authenticated', () => {
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireNoAuth(api)(null, replace);

      expect(replace.withArgs('/patients').callCount).to.equal(1);
    });

    it('should not update route if user is not authenticated', () => {
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(false)
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireNoAuth(api)(null, replace);

      expect(replace.callCount).to.equal(0);
    });
  });

  describe('requireNotVerified', () => {
    it('should not update route if user is not logged in', (done) => {
      let api = {
        user: {
          get: (cb) => {
            cb({
              status: 401
            });
          }
        },
        logout: sinon.stub()
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireNotVerified(api, store)(null, replace, () => {
        expect(replace.callCount).to.equal(0);
        done();
      });
    });

    it('should update the route to /patients if user has already verified e-mail and accepted the most recent terms', (done) => {
      config.LATEST_TERMS = '2014-01-01T00:00:00-08:00';
      let api = {
        user: {
          get: (cb) => {
            cb(
              null,
              {
                userid: 'a1b2c3',
                emailVerified: true,
                termsAccepted: '2015-01-01T00:00:00-08:00'
              }
            );
          }
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireNotVerified(api, store)(null, replace, () => {
        expect(replace.withArgs('/patients').callCount).to.equal(1);
        done();
      });
    });

    it('[ditto &] should use state from the store instead of calling the API when available', (done) => {
      let api = {
        user: {
          get: sinon.stub()
        }
      };

      let store = {
        getState: () => ({
          blip: {
            allUsersMap: {
              a1b2c3: {
                userid: 'a1b2c3',
                emailVerified: true,
                termsAccepted: '2015-01-01T00:00:00-08:00'
              }
            },
            loggedInUserId: 'a1b2c3'
          }
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireNotVerified(api, store)(null, replace, () => {
        expect(replace.withArgs('/patients').callCount).to.equal(1);
        expect(api.user.get.callCount).to.equal(0);
        done();
      });
    });

    it('should update route to /terms if user has already verified e-mail and has not accepted the terms', (done) => {
      let api = {
        user: {
          get: (cb) => {
            cb(
              null,
              {
                userid: 'a1b2c3',
                emailVerified: true,
                termsAccepted: ''
              }
            );
          }
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replaceState = sinon.stub();

      expect(replaceState.callCount).to.equal(0);

      requireNotVerified(api, store)({location: {pathname: 'test'}}, replaceState, () => {
        expect(replaceState.withArgs('/terms').callCount).to.equal(1);
        done();
      });
    });

    it('[ditto &] should use state from the store instead of calling the API when available', (done) => {
      let api = {
        user: {
          get: sinon.stub()
        }
      };

      let store = {
        getState: () => ({
          blip: {
            allUsersMap: {
              a1b2c3: {
                userid: 'a1b2c3',
                emailVerified: true,
                termsAccepted: ''
              }
            },
            loggedInUserId: 'a1b2c3'
          }
        })
      };

      let replaceState = sinon.stub();

      expect(replaceState.callCount).to.equal(0);

      requireNotVerified(api, store)({location: {pathname: 'test'}}, replaceState, () => {
        expect(replaceState.withArgs('/terms').callCount).to.equal(1);
        expect(api.user.get.callCount).to.equal(0);
        done();
      });
    });

    it('should not update the route if user has not yet verified e-mail and should \"logout\" user', (done) => {
      let api = {
        log: () => {},
        user: {
          get: (cb) => {
            cb(
              null,
              {
                userid: 'a1b2c3',
                emailVerified: false
              }
            );
          },
          logout: (cb) => { cb(); }
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireNotVerified(api, store)(null, replace, () => {
        expect(replace.callCount).to.equal(0);
        done();
      });
    });

    it('[ditto &] should use state from the store instead of calling the API when available', (done) => {
      let api = {
        log: () => {},
        user: {
          get: sinon.stub(),
          logout: sinon.stub()
        }
      };

      let store = {
        getState: () => ({
          blip: {
            allUsersMap: {
              a1b2c3: {
                userid: 'a1b2c3',
                emailVerified: false
              }
            },
            loggedInUserId: 'a1b2c3'
          }
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      requireNotVerified(api, store)(null, replace, () => {
        expect(replace.callCount).to.equal(0);
        expect(api.user.get.callCount).to.equal(0);
        expect(api.user.logout.callCount).to.equal(1);
        done();
      });
    });
  });

  describe('onUploaderPasswordReset', () => {
    it('should not update route if user is not logged in', () => {
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(false)
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      onUploaderPasswordReset(api)(null, replace);

      expect(replace.callCount).to.equal(0);
    });

    it('should update the route to /profile if the user is authenticated', () => {
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      onUploaderPasswordReset(api)(null, replace);

      expect(replace.withArgs('/profile').callCount).to.equal(1);
    });
  });

  describe('hashToUrl', () => {
    it('should update route to hash if no pathname but hash present', () => {
      let nextState = {
        location: {
          pathname: '/',
          hash: '#/foobar'
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      hashToUrl(nextState, replace);

      expect(replace.withArgs('/foobar').callCount).to.equal(1);
    });

    it('should not update route to hash if pathname and hash present', () => {
      let nextState = {
        location: {
          pathname: '/foo',
          hash: '#/foobar'
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      hashToUrl(nextState, replace);

      expect(replace.callCount).to.equal(0);
    });

    it('should not update route to hash if pathname present and no hash', () => {
      let nextState = {
        location: {
          pathname: '/foo',
          hash: ''
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      hashToUrl(nextState, replace);

      expect(replace.callCount).to.equal(0);
    });
  });

  describe('onIndexRouteEnter', () => {
    it('should update route to /patients when #/patients present', () => {
      let nextState = {
        location: {
          pathname: '/',
          hash: '#/patients'
        }
      };

      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {
            isLoggedIn: true
          }
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      onIndexRouteEnter(api, store)(nextState, replace);

      expect(replace.withArgs('/patients').callCount).to.equal(1);
    });

    it('should update route to /patient/435/data when #/patient/435/data present', () => {
      let nextState = {
        location: {
          pathname: '/',
          hash: '#/patient/435/data'
        }
      };

      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {
            isLoggedIn: false
          }
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      onIndexRouteEnter(api, store)(nextState, replace);

      expect(replace.withArgs('/patient/435/data').callCount).to.equal(1);
    });

    it('should update route to /patient/435/data when #/patient/435/data present and call provided callback', () => {
      let nextState = {
        location: {
          pathname: '/',
          hash: '#/patient/435/data'
        }
      };

      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {
            isLoggedIn: false
          }
        })
      };

      let replace = sinon.stub();
      let cb = sinon.stub();

      expect(replace.callCount).to.equal(0);
      expect(cb.callCount).to.equal(0);

      onIndexRouteEnter(api, store)(nextState, replace, cb);

      expect(replace.withArgs('/patient/435/data').callCount).to.equal(1);
      expect(cb.callCount).to.equal(1);
    });

    it('should update route to /patients when logged in', () => {
      let nextState = {
        location: {
          pathname: '/',
          hash: ''
        }
      };

      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      onIndexRouteEnter(api, store)(nextState, replace);

      expect(replace.withArgs('/patients').callCount).to.equal(1);
    });

    it('should not update route to /patients when not logged in', () => {
      let nextState = {
        location: {
          pathname: '/',
          hash: ''
        }
      };

      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(false)
        }
      };

      let store = {
        getState: () => ({
          blip: {}
        })
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      onIndexRouteEnter(api, store)(nextState, replace);

      expect(replace.callCount).to.equal(0);
    });
  });

  describe('onOtherRouteEnter', () => {
    it('should update route to /patients if user is authenticated', () => {
      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(true)
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      onOtherRouteEnter(api)(null, replace);

      expect(replace.withArgs('/patients').callCount).to.equal(1);
    });

    it('should update route to /login if user is not authenticated', () => {

      let api = {
        user: {
          isAuthenticated: sinon.stub().returns(false)
        }
      };

      let replace = sinon.stub();

      expect(replace.callCount).to.equal(0);

      onOtherRouteEnter(api)(null, replace);

      expect(replace.withArgs('/login').callCount).to.equal(1);
    })
  });
});


text:
Q: How do I get a lambda query that is like this tsql query? Having a T-SQL query:
select [ProductNumber] ,max([ProductRevNumber])
from Products
group by [ProductNumber]

Attempted LINQ query:
ProductsDBContext.Products.GroupBy(x => x.ProductRevNumber)
                          .Select(group => ProductNumber,
                                           ProductRevNumber = group.Max(x => x.ProductRevNumber));

The lambda query doesn't work.

A: I think this is what you are after:
var latestProducts = ProductsDBContext.Products
    .GroupBy(p => p.ProductNumber).Select(g => new
    {
        ProductNumber = g.Key,
        MaxProductRevNumber = g.Max(p => p.ProductRevNumber))
    });

A: from p in db.Products
group p by p.ProductNumber into g
select new
{
    ProductNumber = g.Key,
    ProductRevNumber = g.Max(p => p.ProductRevNumber)
};

redpajama_set_name: RedPajamaStackExchange


We're about to hit the halfway mark of 2017 and some killer albums have dropped whilst Wall of Sound has expanded our coverage into Podcasting as well as welcoming a host of new writers and photographers on board! Killer Content, Done Our Way!
We've asked a bunch of our writers and photographers to come with their Top 7 Albums So Far for 2017 and what they are most looking forward too for the rest of the year. Some interesting picks and sure to evoke some arguments. Will they change much by year's end?
1. Sikth – The Future In Whose Eyes?
All our photographers can be contacted direct via the links in the article or our email (above) should you wish to purchase photos from them direct and our writers are available for any freelance jobs including writing up some killer press releases or band bio's.
So, get involved, let us know your TOP 7 so far this year on the Wall of Sound Facebook or Twitter!


With the holiday season now behind us, you might be feeling a little budget conscious and perhaps even a bit stir crazy with the cold weather hanging around. With spring cleaning and home renovation projects right around the corner, don't let cabin fever keep you from getting a head start! Here are three simple and affordable projects you can tackle now to get ahead of spring.
Has the garage become a storage unit for holiday presents and décor along with tools and old sports gear? Don't worry, organizing the garage is a project you can complete in just one weekend.
Start by determining what items should or could be stored together. Think gardening supplies and tools, sports and hobby gear, seasonal items, tools and hardware, garbage and recycling, etc.
Get rid of it! Sort items you're getting rid of into three piles: recycle, toss and donate.
Grab some paper and make a simple sketch of your garage. Note measurements of windows/doors, utilities and how much room you'll need for your car.
Start organizing! Check out this Lowe's article for organizing ideas and watch the video below for garage organization tips!
Color is on-trend for 2019! Don't be afraid to go bold by painting an entire room, or adding an accent wall to instantly brighten your living space. Paint is one of the easiest and most affordable ways to update any room, and it's something you can do while you're stuck inside. At Lowe's, there are countless paint colors available to give your room the desired look and feel.
Not sure what color family is best for your room? Check out how these colors affect moods and emotions.
Red: A high-energy color that increases appetite and conversation. Works best in living or dining rooms.
Orange: Another high-energy color that evokes power. Works best for the kitchen or dining room.
Yellow: Soft yellows are associated with happiness and warmth. Works best in the kitchen.
Green: A calming and refreshing color that reminds us of nature. Works best for bedrooms and areas of relaxation.
Blue: Creates a serene, spa-like environment that's great for bedrooms. Brighter blues are known to increase productivity, which works well in an office.
Purple: A color often associated with royalty and wealth. The luxurious color works well in living or dining rooms.
Brown: A cozy color that works well in living areas where people gather.
White: A color that brightens up spaces and creates a sense of cleanliness.
You won't need a complete bathroom remodel to make a big impact. Adding a few accessories, decorative elements and storage options can make small areas of your bathroom more functional and decorative.
Spruce up bathroom shelves with houseplants that don't require much sunlight, such as Exotic Angel Plants. These plants help bring the outdoors in and add a natural touch of color.
Replace pedestal sinks with a vanity for more storage and style. You can also add decorative baskets on vanity shelves to organize towels and toiletries.
Wallpaper isn't limited to the bedroom. Decorating small spaces, like your bathroom, with patterned wallpaper is an easy way to amplify the room's style.
Looking for something even more creative? Try adding a statement lighting fixture above the bath tub or the vanity.


text:
Supporter Engagement During COVID-19: Five Trends to Watch
Amid the unprecedented disruptions we've seen since March, it's clear that the nonprofit sector and grantmakers are in uncharted waters.
Between the pandemic, its wider economic impact, and the ongoing movement for racial justice in the United States, many nonprofits and other groups are seeing an increased need for their services just as resources become tighter than ever.
Of course, it hasn't been all bad news. The surge in need for nonprofit services has come alongside an equally unprecedented surge in grassroots energy and interest. Philanthropists and foundations of all shapes and sizes have stepped up in major ways, too, pledging support and facilitating critical conversations around public health and social justice.
At Mobilize, the events management and volunteer recruitment platform for mission-based organizations, we have seen the sector shift and adapt firsthand and in real-time. We want to share five key trends we've seen among individual supporters and mission-based organizations using our platform:
1. The shift to virtual was extremely rapid.
Prior to COVID-19, only about 20% of postings on our platform were virtual. By mid-March, nearly 100% of sign-ups on our platform were for virtual events and opportunities.
The speed with which organizations adapted to the necessity of virtual engagement has been incredible, and this shift will have long-lasting impacts, even when in-person gatherings become feasible again. Most importantly, organizations of all sizes have proven that they have the ability to quickly pivot their strategies and that supporters will stay responsive.
By now, it's clear that any organization continuing to hesitate on virtual events and engagement is falling behind. We've seen supporters immediately jump on board to engage virtually with nonprofits, advocacy groups, and political campaigns alike. The only things potentially holding organizations back with virtual events are strategy and tech, but definitely not a lack of interest or willingness from supporters.
2. The energy from supporters has been record-breaking.
Alongside the rapid shift to virtual events, organizations using our platform for recruitment and volunteer management have seen dramatic increases in engagement across the board.
Between March 8 and June 8, we saw over 1.3 million total volunteer shifts scheduled. Our weekly shift volume during this period was higher than in any single week in 2019.
People are clearly eager to help the causes and campaigns that matter to them. Organizations that shifted strategies quickly to tap into this surge of energy must actively engage and steward new supporters to retain them through the end of the year and beyond.
The growth of more effective digital infrastructures over recent years has laid a solid foundation for organizations looking to harness this surge of grassroots support over the long run. For instance, NARAL incorporated the Mobilize platform into their revamped multichannel recruitment strategy, growing their average monthly volunteer shifts from 600 to 1,900 in the process. Solid recruitment strategies and networks have put organizations like NARAL in powerful positions to leverage and retain their surges of COVID-19 support.
3. Phone banking and community events have dominated.
Between March and June, 35% of all events created on our platform were phone banks, and 23% were virtual community events. In terms of attendance, virtual training sessions for political and advocacy campaigns, virtual community events, phone banks, and solidarity gatherings have been the most popular with individual supporters.
The emphasis on these types of events makes sense. Community discussions, phone banks and training sessions all translate to virtual settings fairly easily. Plus, during times of disruption and uncertainty, reinforcing your relationships and spreading the word about your campaign or mission is critical for shoring up support. This is true for any type of mission-based organization, from nonprofits to political campaigns to labor unions making the shift to virtual engagement.
Here's the complete breakdown of volunteer shifts by event type:
If your own organization or partners are looking for new virtual opportunities to explore, start with the types of events that others have already found effective and that are proven to be engaging for online audiences.
4. Event attendees represent an important new fundraising source.
The events of recent months have made grassroots fundraising more challenging than ever for many organizations. While virtual engagement and volunteering have surged, donations aren't necessarily following suit across the board.
On the Mobilize platform, we've seen 20% of event registrants initiate an average donation of $26 when solicited after completing the sign-up process.
As individuals who have already demonstrated commitment to the missions they're supporting, volunteers are an increasingly important source of donations for many organizations. For some types of organizations, like nonprofits, soliciting donations from volunteers is a new technique, while others like political campaigns regularly rely on this tactic.
Depending on the specifics of an organization's audience, mission, and events or virtual opportunities, appealing to volunteers for small donations can be an effective way to generate additional support.
5. Volunteers can (and should) take charge to drive more engagement.
Taking a peer-to-peer approach to engagement during COVID-19 and beyond can be a winning strategy for many organizations. The rise of peer-to-peer fundraising as a major trend in the nonprofit world shows how effective it can be to empower supporters to drive more engagement on your organization's behalf.
Between March 8 and June 8, 23% of events posted on the Mobilize platform were hosted by volunteers. We expect to see this trend grow for many types of organizations as virtual events become increasingly incorporated into their strategies as standard engagement outlets.
As with peer-to-peer fundraising, volunteer-hosted events can be a great way to drive results because they tap into the power of social proof. Plus, they reinforce an organization's relationships with those key volunteers, driving long-term retention.
Pursuing these benefits through peer-to-peer tactics isn't difficult. Our research indicates that supporters whose first event is volunteer-hosted are at least twice more likely to be retained over the months ahead. With virtual events the new norm, empowering key volunteers to host their own discussions or training sessions is more feasible than ever.
Even simpler social strategies can make a big difference for recruitment. Automated bring-a-friend prompts encouraging registrants to share the event with friends via email, text, or social media have generated 14% of all registrations on our platform of over 2.2 million volunteers.
As the broader mission-based sector settles into a new normal and braces for other uncertainties, maintaining and growing engagement with supporters will be both more important and more challenging than ever.
With (at least a little) hindsight now that we're several months into the pandemic, it's clear that audiences are still eager to engage virtually with the causes that matter to them, and more eager than ever in some cases. Organizations will have to meet supporters halfway, so to speak, and give them the right opportunities to put their passion into action.
For more statistics on how organizations have recruited and organized supporters amid the COVID-19 pandemic, check out our complete list of trends and insights.
Mobilize is the volunteer recruitment and events management platform for mission-driven organizations. Our rapidly growing network of 2.2 million passionate supporters has helped organizations of all sizes reach their recruitment and engagement goals. We've powered over 5.1 million volunteer actions since 2018, and we're excited to help drive more missions forward in 2020 and beyond.

redpajama_set_name: RedPajamaCommonCrawl


text:
How Female Fans Of the NFL Can Move Past Ray Rice and Roger Goodell
By now, you've likely heard about the Ray Rice domestic violence situation in the press and the NFL's systematic fumbling of the investigation from the get-go.
The lack of a proper investigation has been unraveling into a greater discussion of women, the role within sports, within the NFL and it's fan base.
And I can tell you, we can do better.
The public expects a lot out of the NFL, as it should. Outside of the government and the IRS, the NFL could be considered one of the most powerful companies in the world.
It's time for the league to start leading the way.
The Fish Stinks At the Head
Like it or not, anytime a major company suffers as massive of PR mess, like the NFL has gotten itself into, failure falls at the top of that chain of command.
Roger Goodell has ruled this league with an iron fist. But NFL has had over 80 domestic violence incidents since Roger Goodell was appointed.
It's not to say that the NFL is the only league with a domestic violence problem, frankly it's a social problem, but the NFL is the most powerful and can make the most impact.
Not only has Goodell attempted to sweep this issue under the rug as he had with the concussion issues, but he's lied about the case on every level from the very get-go.
Kieth Olberman put it brilliantly when he said the NFL did not wait patiently for law enforcement to gather the Patriots' Spy-gate tapes or during the Saints' bounty-gate scandal. Goodell has former CIA and FBI agents employed within the NFL.
This entire situation has also brought to light the role of women both working for the NFL and the ones that cheer for the sport.
Cheerleaders are paid around $70 a game and don't have a right to team benefits, despite practicing as long as 6 hours a day. Most are also expected to pay for their own hair, makeup and gym memberships which are required as part of the job. If they speak up about it, they're replaced.
Most women aren't allowed to actually analyze the NFL, much less sports in general. As Katie Nolan said, it's time for more media members (Fox, ESPN, CBS etc..) to respect that women have an opinion on sports and don't need to be limited to sideline reporting or tossing it back for commercials.
In a study GuysGirl conducted almost two years ago, we found the surprisingly low amount of women employed at the senior level within all NFL teams. As many has 5 didn't have a single female executive employed and as many as 9 teams only had one executive, that was usually in a marketing or financial role.
….But the NFL is still going to sell you those pink jerseys come October to prove they care about us!
How do female fans get past this?
Even on our Helmets and Heels radio show Tuesday night, it was our most passionate discussion to date and there was just an overall feeling of inadequacy felt by a sport and league we love so much.
But there are actions that need to be taken to address both domestic violence and the role of women within the NFL:
–New commissioner. Goodell has got to and the owners need to make it apparent that this kind of lying and coverup on important issues will not stand.
–More training at rookie symposiums and within teams with professional advice on how to deal with stress, anger and domestic violence.
–Employing more women executives within the NFL and within teams. Require a "Rooney rule" of sorts that forces teams to at least interview a qualified woman for any leadership/executive positions.
What can YOU personally do?
–As much as the NFL has gotten it wrong lately, some things, like the below commercial, they've gotten right.
–Keep voicing your opinion. Our voices are being heard, but it's time to keep the pressure on.
–The NFL purse ban last year was stupid. Every female fan knew it. But you can still outsmart the system (Johnny Bag).
–And lastly, keep enjoying the game. Just like Ray Rice doesn't encompass the Ravens, Roger Goodell does not represent this entire league.
Posted by Blythe Brumleve | Sep 12, 2014 | Female Sports Fans, GuysGirl, Helmets and Heels
North Florida's White Oak Conservation is a hidden gem for endangered animals
Who You Calling Scruffy-Looking: Han Solo Cosplay Instructions
What's next for GuysGirl?
Biofeedback Jax Review: How These Treatments Helped Me Personally and Professionally


text:
In Salah o Aïn-Salah (en àrab عين صالح, ʿĪn Ṣāliḥ), literalment 'bon pou', és una ciutat d'Algèria de la wilaya de Tamanrasset. Està situada al centre del Sàhara algerià, dins el Tidikelt (sistema d'oasis). Ain Salah en temps antics tenia boscos que han quedat en part petrificats. El 2008 tenia 32.518 habitants

Economia
La zona al voltant d'In Salah és el lloc d'Algèria amb més reserves de petroli i de gas i d'equipament per al seu processament.

Transport
In Salah disposa d'un aeroport a 7 km de la ciutat.

Clima
In Salah té un clima desèrtic càlid. La temperatura mitjana anual és de 21 °C, el gener la temperatura mitjana és 13,5 °C i la de juliol 36,5 °C. (les màximes de juny a agost són de 50 °C). La pluviometria anual és de 17 litres amb el màxim és al novembre amb 5 litres. A l'estiu hi bufa amb força el vent Sirocco.

Notes

Ciutats d'Algèria

redpajama_set_name: RedPajamaWikipedia


text:
Dwight Duncan slams teacher union over criticism
By Rob FergusonQueen's Park Bureau
Tues., Aug. 14, 2012timer2 min. read
Elementary teachers union president Sam Hammond is out of line for calling the government's push for a wage freeze an unprecedented and "insidious assault," Finance Minister Dwight Duncan says.
"I really reject the tenor of his comments. His statement doesn't reflect the facts or the history," Duncan said Tuesday, referring to cuts made by previous premiers Bob Rae and Mike Harris — who prompted a bitter and violent five-week civil service strike in 1996.
"All we're asking is to take a pause. Nobody's losing pay," added Duncan, who is in charge of fighting Ontario's $15 billion deficit. "It's regrettable he's chosen to be obstinate."
Hammond told the Elementary Teachers Federation of Ontario convention on Monday that "no government in Ontario, of any political stripe, has ever, every made this kind of blunt force strike at the heart of any of its public sector workers."
The union has said it will not bargain a new contract with the province but will try to hammer out agreements with school boards, an effort that could take several months and go beyond a Sept. 1 deadline set by Education Minister Laurel Broten.
The minority Liberal government has threatened to recall the legislature from its summer recess to pass a wage freeze law for teachers if deals are not reached by the end of August.
That's the only way to avoid what Education Minister Laurel Broten warns are automatic wage roll-overs that will cost taxpayers an extra $473 million.
The Ontario English Catholic Teachers Association, a union representing Franco-Ontarian teachers and a small union representing support staff, has signed wage freeze deals. So far, the Ontario English Catholic Teachers Federation is the only major union to agree to a freeze. The elementary teachers and Ontario Secondary School Teachers Federation are balking.
NDP Leader Andrea Horwath told the elementary teachers' union convention Tuesday that her party won't support any legislation hitting educators with a wage freeze.
She charged the minority Liberal government is "doing everything it can to create a crisis" by talking tough on such a law to impress voters in two crucial Sept. 6 byelections.
"I will not use you as pawns in a desperate attempt to win a byelection," Horwath said.
McGuinty's Liberals are hoping to win the riding of Kitchener—Waterloo, formerly held by popular Progressive Conservative MPP Elizabeth Witmer, and hold on to Vaughan, represented by Liberal MPP Greg Sorbara until his surprise resignation Aug. 1.
If the Liberals hold Vaughan and gain Kitchener—Waterloo, the government would have a de facto majority in the legislature.
Broten said the government remains hopeful that teacher unions and school boards can reach contracts before the deadline.
"We respect the local bargaining process," she said on CP24. "We're going to give some time for that to happen . . . a bit more time."
In Vaughan, Progressive Conservative Leader Tim Hudak, who is pushing for a legislated wage freeze for all public sector workers to save $2 billion a year, said McGuinty has "bungled" the teacher contract situation.
"He's had four years knowing that the deal that gave teachers a 3 per cent increase every year was coming to an end, and the fact that we're only a few weeks out from school's starting day, shows considerable mismanagement by this government," he told reporters.


This ZNF229 antibody is generated from rabbits immunized with a KLH conjugated synthetic peptide between 60-89 amino acids from the N-terminal region of human ZNF229.
Small volumes of anti-ZNF229 antibody vial(s) may occasionally become entrapped in the seal of the product vial during shipment and storage. If necessary, briefly centrifuge the vial on a tabletop centrifuge to dislodge any liquid in the container`s cap. Certain products may require to ship with dry ice and additional dry ice fee may apply.
ZNF229 may be involved in transcriptional regulation.
ZNF229 Antibody (N-term) western blot analysis in NCI-H292 cell line lysates (35ug/lane).This demonstrates the ZNF229 antibody detected the ZNF229 protein (arrow).
NCBI/Uniprot data below describe general gene information for ZNF229. It may not necessarily be applicable to this product.
ZNF229: May be involved in transcriptional regulation. Belongs to the krueppel C2H2-type zinc-finger protein family.


Welcome to the course unit about the German Media System. Germany is the most populated and probably most powerful country in the EU, located in the center of Europe. Its media system has many unique features, which we seek out to explain in the following chapters. You will also find a full transcript in the tabs next to the video, as well as additional learning material and links. Click below to view a short summary of the most important facts.
You can download the videos if you right-click on the player and click "save video as..."


text:
/**
 * @private
 */
Ext.define('Ext.fx.layout.card.Style', {

    extend: 'Ext.fx.layout.card.Abstract',

    requires: [
        'Ext.fx.Animation'
    ],

    config: {
        inAnimation: {
            before: {
                visibility: null
            },
            preserveEndState: false,
            replacePrevious: true
        },

        outAnimation: {
            preserveEndState: false,
            replacePrevious: true
        }
    },

    constructor: function(config) {
        var inAnimation, outAnimation;

        this.initConfig(config);

        this.endAnimationCounter = 0;

        inAnimation = this.getInAnimation();
        outAnimation = this.getOutAnimation();

        inAnimation.on('animationend', 'incrementEnd', this);
        outAnimation.on('animationend', 'incrementEnd', this);
    },

    updateDirection: function(direction) {
        this.getInAnimation().setDirection(direction);
        this.getOutAnimation().setDirection(direction);
    },

    updateDuration: function(duration) {
        this.getInAnimation().setDuration(duration);
        this.getOutAnimation().setDuration(duration);
    },

    updateReverse: function(reverse) {
        this.getInAnimation().setReverse(reverse);
        this.getOutAnimation().setReverse(reverse);
    },

    incrementEnd: function() {
        this.endAnimationCounter++;

        if (this.endAnimationCounter > 1) {
            this.endAnimationCounter = 0;
            this.fireEvent('animationend', this);
        }
    },

    applyInAnimation: function(animation, inAnimation) {
        return Ext.factory(animation, Ext.fx.Animation, inAnimation);
    },

    applyOutAnimation: function(animation, outAnimation) {
        return Ext.factory(animation, Ext.fx.Animation, outAnimation);
    },

    updateInAnimation: function(animation) {
        animation.setScope(this);
    },

    updateOutAnimation: function(animation) {
        animation.setScope(this);
    },

    onActiveItemChange: function(cardLayout, newItem, oldItem, options, controller) {
        var inAnimation = this.getInAnimation(),
            outAnimation = this.getOutAnimation(),
            inElement, outElement;

        if (newItem && oldItem && oldItem.isPainted()) {
            inElement = newItem.renderElement;
            outElement = oldItem.renderElement;

            inAnimation.setElement(inElement);
            outAnimation.setElement(outElement);

            outAnimation.setOnBeforeEnd(function(element, interrupted) {
                if (interrupted || Ext.Animator.hasRunningAnimations(element)) {
                    controller.firingArguments[1] = null;
                    controller.firingArguments[2] = null;
                }
            });
            outAnimation.setOnEnd(function() {
                controller.resume();
            });

            inElement.dom.style.setProperty('visibility', 'hidden', 'important');
            newItem.show();

            Ext.Animator.run([outAnimation, inAnimation]);
            controller.pause();
        }
    },

    destroy:  function () {
        Ext.destroy(this.getInAnimation(), this.getOutAnimation());

        this.callParent(arguments);
    }
});

redpajama_set_name: RedPajamaGithub


When you're selling your home, it's essential the viewing goes well. You need to show your home in its best light to attract buyers. And whether you're doing viewings yourself or leaving it to your estate agent, it's up to you to get your home ready beforehand. How? This post looks at some simple ways you can prepare your home for prospective buyers.
First things first, you need to make your home look attractive on the outside. It's the first thing prospective buyers will see, and gives them a lasting first impression – so make sure it's a good one. Clear any litter or weeds, trim plants and sweep up to get your house looking neat and tidy. Some sellers even park their car away from the house to show off the driveway or space outside the home.
It's obvious to say your house needs to be clean and tidy before a viewing, but consider de-cluttering too. Buyers want to imagine themselves in the home, so remove as many little trinkets and personal pictures as possible. Items that have been stored away in cupboards or spare bedrooms should also be moved as these spaces could be a big selling point for your home.
It's important your home smells great as well as looking the part. Emptying the bins and opening the windows for a few hours before viewings can get your home smelling fresh. But there are also some ways to amplify your home's appeal even more. By now, we're all familiar with coffee and freshly baked bread as the popular homely aromas. But if you want something a bit less clichéd, you can always use some scented candles. Just ensure they aren't too strong.
Pets and children, as much as you love them, can get in the way of house viewings. If possible, get somebody to look after your kids or pets while people are viewing your home. And remember to clear up any toys or hair – from pets – before the viewing begins.
One of the big trends at the moment in property is home staging. It's the idea of turning your home into a show home so viewers can imagine themselves living there. Where possible, you want to make your home look pleasant but not too lived in. Folded towels on the bed, simple layouts in every room and plenty of lighting are all great ways to achieve this.
If you're looking to sell your home around Bury and Bolton, Weale & Hitchen can help. We have over 25 years' experience selling homes, with unrivalled knowledge of the local area. Our sales process takes all the hassle out of selling your home, covering everything from valuations and photography to viewings and the final sale. Book your free valuation today using our online contact form.


We offer a free scrap car collection service in and around East Bilney, Norfolk. A lot of car owners are unaware that if they have a scrap car it will still need to be taxed even if the vehicle is not in use. Don't pay to have your car towed away. We will take away your old car at no fee to you in East Bilney!
As well as offering a completely free collection, we are also currently able to offer cash for scrap cars in East Bilney depending upon the weight of the vehicle!
After trading in Norfolk for over a decade we have built up our company based on very happy customers. Covering East Bilney we know the area well and will be with you at the agreed time and we will not be late. We can be with you at any time, when a time is booked we will never be late. We can collect cars any time, day or night, seven days a week, and so work around your commitments.
We ensure that your old scrap car is disposed of in the right way in Norfolk. Some scrap car collection companies might sell on your car for profit a lot of the time the DVLA will not be notified that you are no longer the registered keeper of the vehicle. This will leave you very vulnerable in the eyes of the law, and can easily result in you being fined a large sum of money. Unlike these companies we always ensure that the DVLA are notified that your vehicle has in fact been scrapped, giving you complete peace of mind in East Bilney. Every time we scrap a car we recycle as much as possible, keeping the impact on our environment as low as possible.
Please ensure that your car is disposed of in the right way, we would like to keep the streets of Norfolk clean. If your area looks unsightly due to abandoned cars, we can help, call Scrap Car East Bilney, we will help keep our streets clean and tidy. Get rid of that old car, book today!
The car scrappage scheme at first may seem like a great idea. However, you will be limited as to what you can get. It is not possible to go out and buy any car you wish. This is a very frustrating issue as you have got to buy a car that is in the current scheme.
It really is easy to scrap your car in East Bilney. Just by picking up the phone you can be told the process by our members of staff. Otherwise, please feel free to take a look at our guide to help you scrap your car before you call or book.


text:
North- & Central America
Travel Report from our World Trip
Sea Cruises & River Cruises
Our Favorite Travel Stories
Beautiful hikes
Dream Islands
Starbucks – Our Global Icon Mug Collection
Scuba Diving Reports
More Travel Reports
World Trip
About / PR
Travel Reports » UNESCO World Heritage Site in Greece
Corfu – Discover the island in one day (Greece)
15. June 2022 Categories: Travel reports, Europe, Greece
We were thrilled to have a stop on the Greek island of Corfu as part of our MSC cruise through the Adriatic. We have been able to explore several Greek islands so far, such as Santorini, Mykonos, Milos, Kefalonia and Crete and were totally thrilled by the flair and the places on the islands every time. On Corfu we took a rental car for a day, drove around the island and were able to see some very beautiful places on …
» Read the full blog post
The monasteries of Meteora – a UNESCO World Heritage Site (Greece)
M E T E O R A – When we first heard the word, it immediately triggered something magical and mystical. The monasteries of Meteora have long been on our list of destinations that we really wanted to see. We were all the more pleased that this year, as part of our trip to Greece, it was successful to visit this UNESCO World Heritage Site 🙂
Meteora – How to get there, Hotel & Sunset Tour (Greece)
After 3 wonderful days on the island of Kefalonia, our journey went back to the Greek mainland, because our destination was the town of Kalambaka in Thessaly. Here are the Meteora monasteries, a UNESCO World Heritage Sitethat we have always wanted to see 🙂
The Acropolis – The landmark of Athens (Greece)
She has been on our bucket list for a long time and we have been looking forward to the moment when we would finally see it: the Acropolis of Athens.
Delos Island – The ruins of the ancient city of Delos (Greece)
8. May 2018 Categories: Travel reports, Europe, Greece
The island of Mykonos, home to just under 10,000 inhabitants, is one of the most famous Greek islands in the Aegean Sea and is a popular destination for many tourists. That the island should be the first stop of our cruise, we were incredibly pleased, because here is among others the beautiful city Mykonos Town and the UNESCO World Heritage Site of the ancient city of Delos.
UNESCO Cultural Heritage
UNESCO Nature Heritage
New 7 Wonders of the World
7 Wonders of Nature
World Heritage Sites:
UNESCO World Heritage in Antigua
UNESCO World Heritage in Argentina
UNESCO World Heritage in Australia
UNESCO World Heritage in Austria
UNESCO World Heritage in Belgium
UNESCO World Heritage in Belize
UNESCO World Heritage in Brazil
UNESCO World Heritage in Cambodia
UNESCO World Heritage in Chech Republic
UNESCO World Heritage in China
UNESCO World Heritage in Curacao
UNESCO World Heritage in Cyprus
UNESCO World Heritage in Ecuador
UNESCO World Heritage in Estonia
UNESCO World Heritage in Finland
UNESCO World Heritage in France
UNESCO World Heritage in Germany
UNESCO World Heritage in Greece
UNESCO World Heritage in Great Britain
UNESCO World Heritage in Hungary
UNESCO World Heritage in India
UNESCO World Heritage in Indonesia
UNESCO World Heritage in Iceland
UNESCO World Heritage in Italy
UNESCO World Heritage in Japan
UNESCO World Heritage in Luxembourg
UNESCO World Heritage in Mauritius
UNESCO World Heritage in Mexico
UNESCO World Heritage in New Zealand
UNESCO World Heritage in Netherlands
UNESCO World Heritage in Norway
UNESCO World Heritage in Palau
UNESCO World Heritage in Peru
UNESCO World Heritage in Puerto Rico
UNESCO World Heritage in Zambia
UNESCO World Heritage in Seychelles
UNESCO World Heritage in Zimbabwe
UNESCO World Heritage in St. Lucia
UNESCO World Heritage in South Africa
UNESCO World Heritage in Tanzania
UNESCO World Heritage in Thailand
UNESCO World Heritage in der Turkey
UNESCO World Heritage in den USA
UNESCO World Heritage in Vietnam
Help us become better
Contact / About us / PR


text:
How many ounces is 2 courts?
There are two types of measurements used when discussing court measurements. The first is the metric system, which uses the metric measurement of length (meters). The second is the imperial system, which uses the imperial measurement of length (yards).
A court in the metric system is equal to 33.3 meters, which is equivalent to 109.7 feet. There are 16 ounces in one foot, which means that 2 metric courts would equal approximately 1752 ounces.
In the imperial system, a court is equal to 27 yards. There are 16 ounces in one yard, which means that 2 imperial courts would equal approximately 864 ounces.
Is 64 oz 2 quarts?
Is 32 oz a court?
Why do we have 2 different courts?
Whats bigger a court or a pint?
How big is 2 quarts?
What is a 2 cup?
How do I measure 2 cups of water?
How much is a cup in Oz?
Is 2 ounces equal to 1 4 cup?
Does 16 oz equal 1 quart?
What does 16 oz convert to in cups?
Is there 16 cups in 4 quarts?
Are there 16 cups in one gallon?
What makes up 1 quart?
Yes, 64 oz is equal to 2 quarts. A quart is a unit of volume commonly used to measure liquids. One quart is equal to 32 ounces, which means that two quarts are equal to 64 ounces. Two quarts of liquid will typically fill up two standard-size quart containers.
No, 32 oz is not a court. A court is an enclosed area prepared and designated for the playing of one or more sports. It generally includes a playing surface, sideline and back lines, and depending on the sport, a center line or mascot.
In the game of basketball, a court is usually 74 to 50 feet long and a minimum of 50 feet wide, with the basket at each end. 32 oz is a unit of measurement of volume, equal to 4 cups, 2 pints, or 1 quart.
We have two different court systems in the United States, federal and state. Federal courts hear cases involving federal laws and cases between citizens of different states. The United States Supreme Court is a part of the federal court system.
State court systems are organized a bit differently and hear cases involving state laws and disputes between citizens of the same state. Each state court system is a bit different, but they include trial courts, appeals courts, and sometimes smaller specialty courts.
The two courts exist because of the principal of dual sovereignty in the U. S. Constitution. This means that both the federal government and the state governments have their own power and laws. This means that both federal and state courts handle different types of disputes and claim different powers.
The federal court system is limited to hearing cases specified by Congress, including bankruptcy, civil rights, patent, and copyright disputes, to name a few. Meanwhile, state courts hear cases that do not fall within the jurisdiction of the federal courts such as issues involving state laws and residents of that particular state.
By having two court systems, the U. S. can better ensure that the laws of the federal government and state governments are respected and upheld. It adds an additional layer of protection for citizens and ensures that justice is served.
A court and a pint are two different units of measure, so it is impossible to say which one is "bigger. " A court is a unit of length or distance, typically used to measure the area of a square or rectangular area, while a pint is a unit of capacity or volume that is typically used to measure the amount of liquid a container can hold.
A 2 quart (2 qt) size is equal to 4 pints, 8 cups or 64 fluid ounces. It is also equal to half a gallon and represents half of the liquid capacity of a 4 qt contrainer. 2 quarts is a standard size for a wide variety of containers, including oil cans, fuel tanks, water bottles and other containers that hold liquids.
The size is also handy for commercial kitchen uses where a quart is often the measure of food items. In terms of volume, 2 quarts is equal to approximately 1. 9 liters.
A 2 cup is a measuring cup that is commonly used for baking and cooking. It is typically made out of glass, plastic, or stainless steel, and it holds two cups of liquid, dry ingredients, or both. The size of a 2 cup is often based on the standard US Customary system, meaning it holds 16 fluid ounces or 8 fluid ounces per cup.
It is a convenient and affordable kitchen tool that allows chefs and bakers to accurately measure the amount of ingredients needed for their recipes. For instance, when baking a cake, the ingredients may need to be measured in 2 cups for the perfect consistency.
Measuring two cups of water requires the use of a liquid measuring cup. It's important to note that a cup used for measuring dry ingredients is not equal to a cup used for measuring liquid ingredients.
A liquid measuring cup is typically an upright cylinder with etched lines up the side to indicate making it easier to measure the exact amount of liquid.
To measure two cups of water, start by placing the liquid measuring cup on a level surface. Then pour water into the cup up to the two-cup line etched onto the side of the measuring cup. It is important to note not to fill the cup above the two-cup line because then the measurement of the water would be too much.
Allow the water to settle for a few seconds, and if necessary top off the cup with a bit more water so that it reaches the two-cup line. Once the cup is full, your measurement of two cups of water is complete.
A cup is equal to 8 fluid ounces (oz) in the US customary system of measurement. 1cup = 8oz. This means that 8 ounces (oz) of a liquid is equal to one cup (1cup). This is true for measuring everything from fluids such as water and milk, as well as dry ingredients such as flour, sugar, baking soda, baking powder, and nuts.
However, when measuring dry ingredients, it is best to use a dry measuring cup instead of a liquid measuring cup. This is because dry ingredients tend to pack in a cup, and you may not get an accurate measurement if you use a liquid measuring cup.
No, 2 ounces is not equal to 1/4 cup. The measurement of two ounces is generally used in reference to weight, while the measurement of 1/4 cup generally refers to volume. This makes 2 ounces and 1/4 cup non-equivalent measurements.
To convert from 2 ounces to 1/4 cup, it is necessary to know the density of the ingredient you are measuring. For example, 2 ounces of all-purpose flour would be equal to 1/4 cup + 2 teaspoons, while 2 ounces of butter would be equal to 1/4 cup minus 1 Tablespoon.
No, 16 ounces does not equal one quart. A quart is equal to 32 ounces, which is double the amount of 16 ounces. One quart is also equal to 4 cups or 2 pints. In comparison, 16 ounces is equal to 2 cups or 1 pint.
To remember the equivalencies, 4 quarts make up a gallon, 2 pints make up a quart, and 16 ounces is equivalent to 1 pint.
16 ounces (oz) is equivalent to 2 cups. There are 8 fluid ounces in a cup, so 16 fluid ounces is equal to two cups. It is also equal to 0. 5 quart. To convert from 16 ounces to other units of measure, it is necessary to understand the relationship between ounces, cups, quarts, and other measurements.
For example, one quart is equal to four cups, which means that 16 fluid ounces is equal to 0. 25 quarts. An ounce is equal to 0. 125 cups. This means that 16 ounces is equal to 2 cups or 1. 5 pints.
No, there is not 16 cups in 4 quarts. One quart is equal to 4 cups, so 4 quarts would equal 16 cups. Therefore, 4 quarts is equal to 16 cups.
No, there are not 16 cups in one gallon. A gallon is a unit of measurement for volume, and it equals approximately 3. 785 liters. There are 16 US customary cups in one gallon, and each cup holds 8 fluid ounces.
However, UK and imperial measurements use a different system of measurements. In the UK and imperial system, there are 18 imperial cups in one gallon, and each cup holds 10 fluid ounces.
One US quart is equivalent to 0. 946352946 liters and is composed of four US cups of liquid. A quart includes two pints, and each pint is equivalent to two US cups. In terms of dry measurements, one US quart is equivalent to four dry cups, 32 dry tablespoons and 64 dry teaspoons.
1 US quart is approximately equal to 1056. 68ml, which is close to the capacity of 1000 milliliters.
What size are tank to bowl bolts?
Can you move toilet out from wall?


text:
National anthem could soon be required at Louisiana taxpayer-supported stadiums
Updated: 11:56 AM CDT May 27, 2021
WDSU Digital Team
american flag (American Flag (generic) - 13269253generic) - 13269253
The "Star-Spangled Banner" could soon be required before all athletic events at taxpayer-supported venues in Louisiana under a proposal that is close to clearing the legislature.Sen. Sharon Hewitt (R-Slidell) sponsored the bill that would apply to the Superdome, Tiger Stadium and various other public arenas and facilities."No competitive athletic event may be held in a venue, the construction, operation, or maintenance of which is financed wholly or partially by the state or a political subdivision of the state, unless the contest is preceded by the playing or singing of the national anthem," the current version of the bill reads.The state Senate only needs to concur with a minor amendment the House of Representatives added Wednesday before Hewitt's proposal advances to the governor's desk.
The "Star-Spangled Banner" could soon be required before all athletic events at taxpayer-supported venues in Louisiana under a proposal that is close to clearing the legislature.
Sen. Sharon Hewitt (R-Slidell) sponsored the bill that would apply to the Superdome, Tiger Stadium and various other public arenas and facilities.
"No competitive athletic event may be held in a venue, the construction, operation, or maintenance of which is financed wholly or partially by the state or a political subdivision of the state, unless the contest is preceded by the playing or singing of the national anthem," the current version of the bill reads.
The state Senate only needs to concur with a minor amendment the House of Representatives added Wednesday before Hewitt's proposal advances to the governor's desk.


Construction of basement consists of 3 nos. of FS water tanks, fabrication and erection of structural structure, spaceframe, roof cladding and wall cladding, hangar area & 3 storey Annex Building and completed with associate MEP.
CAM – Sociedade do Aeroporto Internacional de Macau, S.A.R.L.


Although prom may have taken place over two weeks ago at Maine's Sanford High School, the fact that students elected a gay couple as prom king and queen remains the talk of the local community.
During the May 14 event, 17-year-old Christian Nelsen was named prom queen, running as a write-in candidate. One of Nelsen's friends, Holly Smith, spoke of the help they provided in getting him elected: "The day of prom, we went downstairs, and he was yelling 'Vote for Christian Nelsen!' And I was helping people spell his name, or telling them how to write it on the ballot".
Anyone can win, and on that same notion any type of person can win.
Nelsen's boyfriend, Caleb Jett, was elected prom king. "I kinda got voted in because he got queen, and it was like 'Who do we vote for king?' and it was like 'Oh, well, his boyfriend, obviously, because that makes sense,'" he said. The two young men wore suits, shirts, and ties to the prom. When the results of the election were announced, they danced the king-queen dance together, Jett wearing his crown and Nelsen his tiara.
Minister of a parish of the United Church of Christ Reverend Diane Wendorf supported the couple, citing her church's values of tolerance and diversity. "I'm glad, too, that they were crowned king and queen, because there are all different kinds of people in this world." Some Sanford residents a local news agency interviewed did not approve of the gay couple's crowning, though none agreed to go on camera — out of concerns that their comments might offend someone.
The matter is expected to be brought up by interested citizens at an upcoming school committee meeting. Committee Chair Mark Lucier stated that the school is gathering information on the election, and that the committee may decide if it needs to address the future selection of prom kings and queens.
This entry was posted on Wednesday, March 27th, 2019 at 2:18 am	and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. Responses are currently closed, but you can trackback from your own site.


text:
As Biden Prepares, Trump Worries About Tuesday's Debate
BY Timothy Evans	September 27, 2020
Donald Trump seems worried about debating Joe Biden.
Apparently fearing that he'll be out-performed, Trump Sunday morning again made the baseless allegation that the former vice president is medicinally enhancing his mental acuity. While not specifying of whom he will be making his "demand," Trump is calling for Biden to submit to a drug test before or after Tuesday night's debate in Cleveland.
I will be strongly demanding a Drug Test of Sleepy Joe Biden prior to, or after, the Debate on Tuesday night. Naturally, I will agree to take one also. His Debate performances have been record setting UNEVEN, to put it mildly. Only drugs could have caused this discrepancy???
Former secretary of state John Kerry offered his thoughts on Trump's testing tweet:
This reminds me of what my friend Senator Fritz Hollings once said when his opponent challenged him to take a drug test: "I'll take a drug test if you'll take an IQ test." https://t.co/8Ro8ExB3Bs
— John Kerry (@JohnKerry) September 27, 2020
Over the past several days Trump have snarkily mocked former Biden for making few public appearances as he prepares for the debate. Trump himself says he doesn't feel the need for formal debate rehearsal sessions, saying that he "sort of prepare every day by just doing what I'm doing," he told "Fox and Friends."
While Trump has expressed his bullying bravado about the upcoming debate, others on team Trump are taking a different approach.
As if they were crafting previews of a TV show, some of Trump's surrogates have been trying to mold audience expectations in advance of Tuesday night, putting it out there that Biden might actually out-duel Trump on stage in a one-on-one setting. "Joe Biden is actually a very good debater. He doesn't have as many blunders as he does in his daily interviews," Trump adviser Jason Miller.
How Biden should deal with Trump Tuesday night is the subject of much discussion. Philippe Reines, the former state department official who played Trump during Hillary Clinton's 2016 debate prep, says that even though Trump is going to lie repeatedly about his record, himself and Biden, the former vice president should forget about trying to fact-check him in real time or hope that moderator Chris Wallace does it. Instead, Reines writes in the Washington Post:
"There's a third option: Preempt the president. Clearly and strongly preview for the 100 million people watching what will happen in the debate as soon it begins. Biden should say early on that we all know what's coming. Not to remind voters. But to remind Trump, by speaking on behalf of the majority of the country, that everyone is on to him, in a reversal of Trump's favorite 'everyone is saying' paralipsis device: 'C'mon, Mr. President. Everyone knows that whatever you call fake is real. Whatever you call a lie is the truth. Whatever you accuse others of doing is what you've done. And whatever you make fun of me for saying by accident only serves to deflect from what you say on purpose.'"
New York Times columnist Nicholas Kristoff says that to beat Trump, Biden should mock him:
"Denouncing dictators has its place, but sly wit sometimes deflates them more effectively. Shaking one's fist at a leader doesn't win people over as much as making that leader a laughingstock. Authoritarians are pompous creatures with monstrous egos and so tend to be particularly vulnerable to humor. They look mighty but are often balloons in need of a sharp pin."


In this article we share with you the latest release of Autodesk SketchBook Pro 2020 Crack Mac For Enterprise the most advanced drawing software packed with professional-quality sketching capabilities and an intuitive interface, designed to turn your pictures into works of art. Using SketchBook Mac Crack You can design very easy and fastwith all the great design tools in this software to implement all your design ideas.
With the help of SketchBook Full Version, Mac users have various tools and features such as professional drawing tools, shading, initial design, high quality brushes, annotation on the design to remind tips to continue designing and removing it. It's easy to use, Photoshop compatibility and more.
What's new in SketchBook Pro 2020 For Enterprise Full Version For Mac ?


Professor Patrick Dunleavy, co-director of Democratic Audit UK based at LSE, has welcomed the government's decision to accept the Electoral Commission's wording for the referendum question on the UK's membership of the European Union.
The referendum, set to take place before the end of 2017, will now ask UK voters if they wish to 'remain' in the EU or 'leave' the EU, rather than present them with simple 'yes' or 'no' options.
Democratic Audit pushed for the more informative style of question since early discussions of the referendum in 2013, and made representations to the Electoral Commission to this effect.
Following the introduction of a government-supported Private Member's Bill in July 2013, the question was going to be 'should the United Kingdom remain a member of the European Union?'. The Electoral Commission advised against this, in line with Democratic Audit's recommendations, to ensure clarity of information and to avoid any potential bias.
"It is very good news for UK democracy that the government has accepted the Electoral Commission's recommended question, and not gone for a Yes/No referendum choice.
At Democratic Audit we have been arguing since 2013 that any European referendum question must make absolutely clear to the voter in the privacy of the polling booth the precise choice they have in front of them.
This decision means that the two options are now crystal clear to voters. It also means that the campaigns themselves will be much clearer throughout the next political year than 'Yes/No' campaigns would have been.
We hope that in future all UK referenda will follow this approach, making voters' choices straightforwardly evident to them."
Democratic Audit is an independent research organisation, established as a not-for-profit company, and based at the London School of Economics and Political Science. Its core objective is to advance education, and to undertake and promote research into, the quality and effectiveness of UK democracy.


The new Generation of GD-04K is a universal GSM dialer and controller with application for Apple and Android devices.
The GD-04K control unit can be also configured remotely through the GD-Link software. Full programming of the GD-04K GSM module options is also available via the My JABLOTRON application.
The web application called My JABLOTRON gives you the highest comfort of controlling appliances from your PC, tablet or smartphone.
Thanks to this app the user can control outputs, check their status and also the status of the inputs, browse the history and manage the whole device remotely. Any action performed by M yJABLOTRON is immediately confirmed so the user has immediate feedback about successful command performance.
Via My JABLOTRON access to the GD-04K module can be shared with other pre-defined users.
MY JABLOTRON application with SMS and email notification is for free and always will be.
The outputs can be set as status or impulse outputs (impulse length 1s to 10h). When an output is controlled by ringing, a limitation on the number of control events can be assigned to each phone number (suitable e.g. for various paid entrances where a phone number should have a certain credit representing the number of entries).
The inputs react to a connection or disconnection to or from a common GND terminal (ON/OFF). GD-04 controller reporting status of inputs via SMS or call. Up to 100 authorized numbers can be set for control and reporting.
Backed-up operation in the case of a power supply failure (for up to 24 hours) is ensured through the connection of the GD-04A backup module (sold separately).


The quilts and crafts of a city girl now living in New Hampshire.
Welcome to the Urban Quilter Shop!
Here are some of the latest designs available in the Urban Quilter Etsy Shop.
You can also buy Urban Quilter growler bags at Great North Aleworks in Manchester, NH and Litherman's Limited in Concord, NH.
Urban Quilter tote bags made from empty grain bags are available at Bert's Better Beers in Hooksett, NH.
Reuse, don't Chuck that Tee!
What are your tips for clothing during menopause?


UN asks India and Pakistan to show 'maximum restraint' even as Imran Khan calls National Command Authority meeting again.
New Delhi: A day after India struck the biggest camp of Jaish-e-Mohammed (JeM) in Balakot, Pakistan, the international community, including US, France, Australia and others, has strongly urged both countries to exercise restraint and de-escalate the growing tensions on both sides of the border.
"I expressed to both Ministers (Sushma Swaraj and her Indian counterpart Shah Mahmood Qureshi) to underscore the priority of de-escalating current tensions by avoiding military action, and the urgency of Pakistan taking meaningful action against terrorist groups operating on its soil," US Secretary of State Mike Pompeo said in a statement.
Pompeo said he has had discussions with the both foreign ministers and urged restraint and maintenance of peace and security in the region.
He said he has asked India to emphasise the "close security partnership" it shares with US and their shared goal of maintaining peace in the South Asian region.
"I also encouraged both Ministers to prioritise direct communication and avoid further military activity," added Pompeo.
Amid reports from across the border that Pakistan may retaliate to India's airstrikes, France said both sides should look at resumption of the bilateral dialogue between New Delhi and Islamabad to "initiate a peaceful settlement of differences".
"The resumption of bilateral dialogue between Islamabad and New Delhi is necessary to initiate a peaceful settlement of differences," said the acting spokesperson of French ministry of Europe and foreign affairs.
Australian Foreign Minister Marise Payne said Pakistan should take "urgent and meaningful action" against terrorist groups in its territory, including JeM which has claimed responsibility for the 14 February Pulwama attack, and the Lashkar-e-Taiba.
"Pakistan must do everything possible to implement its own proscription of Jaish-e-Mohammed. It can no longer allow extremist groups the legal and physical space to operate from its territory," she said in a statement.
"These steps would make a substantial contribution to easing tensions and resolving the underlying causes of conflict. Australia urges both sides to exercise restraint, avoid any action which would endanger peace and security in the region and engage in dialogue to ensure that these issues are resolved peacefully," added Payne.
Earlier this week, the European Union had also asked both sides to diffuse the tensions.
Federica Mogherini, EU high representative for foreign affairs and security policy/vice-President of the European Commission, said she is in touch with both India and Pakistan on this matter.
"The European Union's policy has always been to promote a dialogue between Pakistan and India to sort out differences," said a press statement by the EU.
Meanwhile, UN chief Antonio Guterres said both neighbours should show "maximum restraint".
The Jeddah-based Organisation of Islamic Cooperation (OIC), which has invited India as a 'Guest of Honor' for its plenary session on 1-2 March in Abu Dhabi, has condemned Indian "incursion and aerial violation".
However, it urged both sides to "act responsibly and seek peaceful solution to the current crisis without resort to use of force".
Meanwhile, Pakistan Prime Minister Imran Khan has called a meeting of the National Command Authority (NCA) Wednesday. NCA is the topmost policy-making body of Pakistan that authorises the use of fire-arms and oversees the control of the country's nuclear arsenals.


Coordinate Graph Paper Pdf Printable Cm Graph Paper Template Quad Ruled Legal Free Picture Coordinate Plane Pdf Math Templates Word Graph Paper Kindergarten Coordinate Uploaded by on Saturday, June 30th, 2018 in category Multiple Graph Paper.
See also Coordinate Graph Paper Pdf Cartesian Cordinate Grid Paper from Multiple Graph Paper Topic.
Here we have another image Coordinate Graph Paper Pdf Mystery Media Graph Paper featured under Coordinate Graph Paper Pdf Printable Cm Graph Paper Template Quad Ruled Legal Free Picture Coordinate Plane Pdf Math Templates Word Graph Paper Kindergarten Coordinate. We hope you enjoyed it and if you want to download the pictures in high quality, simply right click the image and choose "Save As". Thanks for reading Coordinate Graph Paper Pdf Printable Cm Graph Paper Template Quad Ruled Legal Free Picture Coordinate Plane Pdf Math Templates Word Graph Paper Kindergarten Coordinate.


We provide you with the extravagance and enhances the natural beauty of the Arabian style furniture. We provide a lifetime of durability and strength to the furniture. We provide you with Arabian wicker furniture feature long lasting, durable leather bindings and the chairs are adorned with plush cushions for extra comfort and support. We give you an assurance of coziness, warmth and style.


text:
Five of the Miracles of Christ: Casting Out the Devil from the Dumb Man (triptych, left inner wing) (after Rogier van der Weyden)
Almshouse of St John the Baptist and St John the Evangelist
Photo credit: Almshouse of St John the Baptist and St John the Evangelist
oil on gesso on oak panel
H 101 x W 58.5 cm
PCF2a
unknown acquisition method
Beard (2,563)
Blessing (23)
Devil (13)
Door (1,298)
Halo (236)
Miracle (11)
Shoe (1,524)
Sword (851)
Turban (140)
Window (5,022)
St John's House, Half Moon Street, Sherborne, Dorset DT9 3LJ England
Louis II de Bourbon (1621–1686), Prince de Condé, known as 'Le Grand Condé' The Captain Christie Crawfurd English Civil War Collection
The Sack of a City Keble College, University of Oxford
Virgin and Child Glasgow Museums Resource Centre (GMRC)
Cupids with Flowers Glasgow Museums Resource Centre (GMRC)
Saint Peter and Saint Thomas Almshouse of St John the Baptist and St John the Evangelist
Saint Denis Preaching in Paris Victoria and Albert Museum
Figures in a Park Glasgow Museums Resource Centre (GMRC)


From featuring an all-Latino cast, to using popular Mexican sayings like "no manches," (you've got to be kidding me) to hiring Latino consultants to oversee the film from start to finish, Disney Pixar's new movie "Coco" is getting it right when it comes to telling an accurate Latino narrative.
The movie "Coco," which opened in U.S. theaters nationwide on Wednesday, Nov. 22, is themed around the annual Mexican holiday, Día de Los Muertos (Day of the Dead). It tells the story of Miguel, a 12-year-old Mexican boy who wants to follow his dreams of pursuing music, despite his family not allowing it. That's when Miguel finds himself in the "Land of the Dead," where he encounters the souls of his ancestors which help him reveal his family's real history.
Miguel is voiced by young actor Anthony González. The movie's trickster Hector is voiced by Golden Globe award-winning Mexican actor Gael García Bernal. Actress Renée Victor and Benjamin Bratt also star in the movie.
Molina, who is Mexican-American, said that his own family and personal experiences, along with the experiences of other Latino colleagues, helped the Pixar team ensure that the Latino narratives they were telling were not clichés. The intent of the team was to make sure the movie celebrated Mexican families and Mexican culture and traditions.
The movie was written and directed by Hollywood director Lee Unkrich, who is white. Unkrich told the New York Times that he had no firm connections to Mexico or its traditions. He also didn't want to be accused of cultural appropriation, which is why he relied heavily on his Latino team members, as well as why he felt the need to hire several outside consultants. He and his team also took several research trips to Mexico throughout the making of the film to spend time with Mexican families.
Alcaraz and other consultants would watch clips of the movie throughout the process and give notes to directors about what they thought worked and what didn't. They also suggested adding more Spanish words and phrases into the script. He said that the directors were open and listened to the critiques and changes, so that it would ring more authentic to bilingual, bicultural Latinos.
Alcaraz hopes that this movie will serve as an example to other Hollywood executives that it's possible to make a good, successful film that features people of color in it.
In October, "Coco" broke box office records in Mexico, and creators are hoping it gets the same response in the United States.


text:
Comunidad Green (Spanish)
GREENHEADLINES
EQUIPMENT AND SYSTEM
COMUNIDAD GREEN
Home Green Engineering China Sees 300 Percent Increase Year-Over-Year in Installed Solar PV This Year
China Sees 300 Percent Increase Year-Over-Year in Installed Solar PV This Year
Posted By: Building Power DistributionPosted date: July 24, 2016 In: Green Engineering
On the back of a series of policies including the "630" policy, initiated by the Chinese government at the end of 2015, setting benchmark pricing for solar PV power generation projects, China added more than 20 GW in PV generation installation capacity during the first half of this year, a year-over-year increase of 300 percent.
According to industry insiders, the country's PV industry is being cautioned to control the pace of growth in order to avoid a new round of imbalance between supply and demand during the second half. The industry will inevitably witness a number of mergers and acquisitions as well as restructurings during the second half. An official from the Ministry of Industry and Information Technology of China revealed that the ministry will work with regulators to establish detailed standards for the evaluation of PV producers and installers.
At a recently held conference, Wang Bohua, secretary general of the China Photovoltaic Industry Association, explained that the country had added 15.1 GW in PV power generation installation capacity in 2015, increasing the overall installed capacity to 43 GW. The country produced 95,000 tons of polycrystalline silicon during the first half of this year, up 28.4 percent from a year earlier. It imported 60,000 tons of polycrystalline silicon during the same period.
According to data from the association, the country produced PV components capable of delivering 27 GW of power during the first half of this year, an increase of 37.8 percent year on year. The country's 42 PV component manufacturers, which have reported results, recorded an average capacity utilization rate of 88.6 percent for the same period, 9 percentage points higher than a year earlier.
+Info and Source: http://goo.gl/fFnKQa
2015 high performance home building trends in review
Japan's Center-Right Goes Green
100% renewable energy 2018 2050 Apple Architecture Batteries china Clean Energy climate change department of energy Donald Trump electric cars' Elon Musk Energy Energy Department energy efficiency Energy Storage EPA Fossil Fuels future google Green Green Architecture Green Building Green Engineering Green Engineering Green News hawaii India Mexico new york paris agreement renewable energy Renewables smart grid Solar SolarCity Solar Energy Solar Panels Solar Power Tesla Tesla Model 3 Toyota Trump UK
Tweets por @dcplusgreen
New water splitting catalyst could make it easier to generate solar fuel
"Hey Alexa, Can You Manage My Energy?"
Green-roofed home is built of waste bricks and wood in Poland
How Many People Does It Take to Develop Solar? Fewer and Fewer
EIA expects relatively flat natural gas prices, continued record production through 2020
Fitch Ratings Renewables Performance Review: Solar Outperforming Wind
The Geopolitics of a Clean Energy Transition
2016 © Buildingpowerdistribution.com


At least we got off before the plane had trouble. Silver lining.
What is it with you and flights? I can't remember the last time you had a hassle-free trip.
Keeping my fingers crossed for the things working out as fast as possible!


Do you love owls? If Short-eared Owls are in your region, consider volunteering for this survey.
The Western Asio Flammeus Landscape Study (WAfLS) is a citizen science project designed to gather information to better evaluate the population status of the Short-eared Owl. In partnership with multiple entities across the west (Owl Research Institute, Nevada Department of Wildlife, Klamath Bird Observatory, HawkWatch International, Washington Department of Fish and Game, University of Wyoming Biodiversity Institute), the California Department of Fish and Wildlife is leading the WAfLS volunteer survey effort in California during the breeding season, March thru mid-May.
A series of randomly grids have been selected throughout CA. Within each grid, volunteer surveyors will select the optimal route along the public road system where point counts will occur. Volunteers can visit project website to obtain the protocol, data sheets, maps, reports, and to view a series of training videos.
You do not need to have expert identification skills to participate, only a keen interest in the project. A good pair of binoculars helps too. To sign-up, visit the website at http://www.avianknowledgenorthwest.net/citizen-science/short-eared-owls. Contact Carie Battistone at Carie.Battistone@wildlife.ca.gov if you have any questions.