text:
'''
Author: Jason.Parks
Created: Apr 19, 2012
Module: common.build.buildPipeline
Purpose: builds and pushes Toolchain to network
'''

from common.core import globalVariables as gv
import sys

# test gVarInit has been changed back
if not gv.toolsLocation[:6] == '/Users':
	print "Forgot to set gVarInit back"
	sys.exit()

from common.diagnostic.pcsLogger import logger
from common.fileIO.pcsPath import Path
from common.perforce import pcsP4
import compileall
import os
import shutil
import xml.etree.ElementTree as ET

# switch to leave .py files on network
_KEEP_NETWORK_PY = False

class PipelineBuild(object):
	"""
	Class to handle building of pipeline
	"""

	def __init__(self, remoteBuild=True):
		""" PipelineBuild.__init__():  set initial parameters """
		''' create class
		Params:
			remoteBuild: build for remote location delivery
		Returns: PipelineBuild object
		'''
		super(PipelineBuild, self).__init__()
		self.p4 = pcsP4.P4Lib(maya=0)
		self.networkLoc = gv.toolsLocation

		# create in location on network
		self.remoteBuild = remoteBuild
		self.buildDest = Path(gv.toolsLocation).parent + '/AMremoteBuild/ArtMonkey'

	def buildPCSPipeline(self, compileInstaller=False, pyc=True, removePY=True, removePYC=True):
		''' main pipeline build and push process
			Params:
				compileInstaller: try to compile APEinstaller.exe
				pyc: create .pyc files in source first
				removePY: remove .py files on network build location
				removePYC: remove local .pyc files in source
			Returns: True/False
		'''
		completeSuccess = True

		#TODO: run unitTself.pipeBuildself.pipeBuildself.pipeBuildests

#		# hack gVarInit
#		self.swapGVarInit(direction='REMOTE')
#
#		#TODO: Compile APE
#		self.compileAPE()
#
#		# swap back
#		self.p4.p4RevertFile()
##		self.swapGVarInit(direction='PCS')

		# create pyc
		if pyc:
			if not self.createPYCfiles(self.pipelineSourceLocation):
				completeSuccess = False

		# copy to network
		if self.remoteBuild:
			# build for remote delivery
			if not self.pushToNetwork(self.buildDest, remote=True):
				completeSuccess = False
			if removePY:
				if not _KEEP_NETWORK_PY:
					if not self.removePYfiles(pathToScrape=self.buildDest):
						completeSuccess = False

			# make Mobu/Maya startup files writable
			for pyFile in Path(self.buildDest).walkfiles('*py'):
				if "pcsGlobalSetup.py" in pyFile or "gVarInit.py" in pyFile or "sysGlobalMenu.py" in pyFile:
					# make non-readOnly
					pyFile.makeWritable()

			# make PCSstudio.xml writable too
			pcsStudioXML = Path('%s/installData/PCSstudio.xml' % self.buildDest)
			if pcsStudioXML.exists():
				pcsStudioXML.makeWritable(_dir=False)

			# clean
			self.clean(self.buildDest)

		else:
			# push to local network
			if not self.pushToNetwork(self.networkLoc, remote=False):
				completeSuccess = False

			if removePY:
				if not _KEEP_NETWORK_PY:
					if not self.removePYfiles(pathToScrape=self.networkLoc):
						completeSuccess = False

		if removePYC:
			if not self.removePYfiles(pathToScrape=self.pipelineSourceLocation, optionalExt='.pyc'):
				completeSuccess = False

		# provide reminder
		print "Remember to remove unneeded:\n./schemas/.\n\nand change:\n./installData/PCSstudio.xml\n./python/maya/maya/sysGlobalMenu.py\n./python/moBu/startup/pcsGlobalSetup.py\n./python/common/core/gVarInit.py"

		#TODO: email T.A.

		print "********************************************"
		print "*** Build complete."
		print "********************************************"
		logger.info("********************************************")
		logger.info("*** Build complete.")
		logger.info("********************************************")

		return completeSuccess

	def clean(self, pNetworkLoc=''):
		_pNetworkLoc = pNetworkLoc

		# clean pymel
		pymel102 = Path('%s/python/maya/pymel-1.0.2' % _pNetworkLoc)
		if pymel102.exists():
			print "Cleaning old: %s/." % _pNetworkLoc
			for _dir in pymel102.dirs():
				# make writable
				for _file in _dir.walk():
					_file.makeWritable()

				if _dir.exists():
					try:
						_dir.rmtree()
						print "Removing dir: %s" % _dir
					except WindowsError:
						print "Unable to delete dir: '%s'" % _dir
						raise
			# remote top dir too
			pymel102.rmtree()

		pymel103 = Path('%s/python/maya/pymel-1.0.3' % _pNetworkLoc)

		for _dir in pymel103.dirs():
			if "pymel" not in _dir.basename() and "maya" not in _dir.basename():	#keep 'pymel' & 'maya'!
				print "Cleaning unneeded: %s/." % _dir
				# make writable
				for _file in _dir.walk():
					_file.makeWritable()

				if _dir.exists():
					try:
						_dir.rmtree()
						print "Removing dir: %s" % _dir
					except WindowsError:
						print "Unable to delete dir: '%s'" % _dir
						raise

		# make writable
		for _file in pymel103.files():
			_file.makeWritable()
			_file.remove()

#		# clean
#		try:
#			Path('%s/.settings' % self.networkLoc).removedirs() # Fails. Read-Only?
#		except WindowsError:
#			print "Failed to remove %s/.settings'" % self.networkLoc

		print "**********************************"
		print "cleaning of '%s' complete." % _pNetworkLoc
		print "**********************************"
		logger.info("**********************************")
		logger.info("cleaning of '%s' complete." % _pNetworkLoc)
		logger.info("**********************************")

	def compileAPE(self):

		# add Lib/site-packages
		sys.path.append(r'C:/Python26/Lib/site-packages')

		# confirm paths
		for p in sys.path:
			logger.debug("Path: %s" % p)

		# Checkout APEinstaller.exe
		self.p4.fileName = '%s/python/apps/APE/installer/APEinstaller.exe' % self.pipelineSourceLocation
		self.p4.p4CheckOut(desc="buildPipeline")

		os.system(r'C:\Python26\python.exe "C:\Python26\PySetup_PCS.py"')

		print "**********************************"
		print "compileAPE complete."
		print "**********************************"
		logger.info("**********************************")
		logger.info("compileAPE complete.")
		logger.info("**********************************")

	def createPYCfiles(self, pathToScrape=''):
		''' compiles all .py files to .pyc
			Params:
				pathToScrape: directory to process
			Returns: True/False?
		'''
		if not pathToScrape:
			pathToScrape = self.pipelineSourceLocation

		result = compileall.compile_dir(pathToScrape, force=1)
		logger.debug("Result of createPYCfiles() is: %s" % result)

		print "**********************************"
		print "Compiling Complete"
		print "**********************************"
		logger.info("**********************************")
		logger.info("Compiling Complete")
		logger.info("**********************************")

		return True

	@property
	def pipelineSourceLocation(self):
		''' Property, do not use ()
			determine location of pipeline root as specified by .xml schema
			Params: none
			Returns: Path(fileLocation)
		'''

		# Parse Global XML
		globalPCSXMLPath = Path('%s/installData/PCSstudio.xml' % self.networkLoc)
		globalPCSXML = ET.parse(globalPCSXMLPath)
		globalXMLCore = globalPCSXML.getiterator('teamA')[0]
		sourceLoc = globalXMLCore.get('P4_Mode')

		return Path(sourceLoc)

	def pushToNetwork(self, networkLoc=gv.toolsLocation, remote=True):
		''' copies all files from depot to desired
			network test location
			Params:
				networkLoc: destination location
			Returns: True/False?
		'''

		_pNetworkLoc = Path(networkLoc)
		result = True

		# copy to remote build location, straight-up delete and copy all
		if remote:

			# try whole loop 5 times?
			for unused in range(4):
				if _pNetworkLoc.exists():
					# nuke current folders
					print "Cleaning old: %s/." % _pNetworkLoc
					for _dir in _pNetworkLoc.dirs():
						# make writable
						for _file in _dir.walk():
							_file.makeWritable()

						# try /python twice
						if 'python' in _dir:
							try:
								_dir.rmtree()
								print "Removing dir: %s" % _dir
							except WindowsError:
								print "Failed once on '%s', trying again . . ." % _dir

						if _dir.exists():
							try:
								_dir.rmtree()
								print "Removing dir: %s" % _dir
							except WindowsError:
								print "Unable to delete dir: '%s'" % _dir
								raise
					# remote top dir too
					_pNetworkLoc.rmtree()

			# copy to network
			print "Copying '%s' dir to '%s'" % (self.pipelineSourceLocation, _pNetworkLoc)
			try:
				Path(self.pipelineSourceLocation).copytree(_pNetworkLoc)
			except WindowsError:
				print "Process locked trying to copy to: '%s'. Please just run again." % _pNetworkLoc
				raise
			except shutil.Error as e:
				print "Permission denied for file/folder: '%s'" % e[0]

			# success?
			if not _pNetworkLoc.exists():
				logger.error("Failed to copy to remote location build: '%s'" % _pNetworkLoc)

			# copy/move dataResources sub-folder
			for _dir in Path('%s/dataResources' % _pNetworkLoc).dirs():
				if _dir.namebase == 'installData':
					Path(_dir).move(_pNetworkLoc)

		# have to dance around data and installData dirs
		else:
			if _pNetworkLoc.exists():
				# nuke current folders
				print "Cleaning old: %s/." % _pNetworkLoc
				for _dir in _pNetworkLoc.dirs():
					if "data" not in _dir:	#keep 'data' & 'installData'!
						# make writable
						for _file in _dir.walk():
							_file.makeWritable()

						# try /python twice
						if 'python' in _dir:
							try:
								_dir.rmtree()
							except WindowsError:
								print "Failed once on '%s', trying again . . ." % _dir

						if _dir.exists():
							try:
								_dir.rmtree()
								print "Removing dir: %s" % _dir
							except WindowsError:
								print "Unable to delete dir: '%s'" % _dir
								raise

					# clean dataResources
					elif _dir == 'dataResources':
						# make writable
						for _file in _dir.walk():
							_file.makeWritable()
						print "Removing dir: %s" % _dir
						_dir.rmtree()

			# copy to network
			tempNetworkLoc = Path('%s/temp' % _pNetworkLoc)

			# copy
			print "Copying '%s' dir to '%s'" % (self.pipelineSourceLocation, tempNetworkLoc)
			try:
				Path(self.pipelineSourceLocation).copytree(tempNetworkLoc)
			except WindowsError:
				print "Process locked trying to copy to: '%s'. Please just run again." % tempNetworkLoc
			except shutil.Error as e:
				print "Permission denied for file/folder: '%s'" % e[0]

			# move first-layer sub-dirs from '/temp' up to parent
			for _dir in tempNetworkLoc.dirs():
				try:
					if "data" not in _dir:	#skip 'data' & 'installData'!
						Path(_dir).move(_pNetworkLoc)
				except WindowsError:
					print "failed on: " + _dir
				except shutil.Error:
					print "failed to copy from dir: '%s', already exists?" % _dir
					raise

			# nuke tempNetworkLoc
			if tempNetworkLoc.exists():
				print "Cleaning old: %s" % tempNetworkLoc
				# make writable
				for _file in tempNetworkLoc.walk():
					_file.makeWritable()
				print "Removing tree: %s" % tempNetworkLoc
				tempNetworkLoc.rmtree()

		############# start cleaning ##############

		# clean un-needed root folders
		unNeededRoot = ['dataResources', 'docs', 'logs']
		for unNeeded in unNeededRoot:
			print "Cleaning un-needed: %s/%s" % (_pNetworkLoc, unNeeded)
			for _dir in Path(_pNetworkLoc).dirs():
				if _dir.namebase == unNeeded:
					# make writable
					for _file in _dir.walk():
						_file.makeWritable()
					print "Removing dir: %s" % _dir
					_dir.rmtree()

		# clean unitTests
		print "Cleaning un-needed: %s/python/unitTests" % _pNetworkLoc
		for _dir in Path('%s/python' % _pNetworkLoc).dirs():
			if _dir.namebase == 'unitTests':
				# make writable
				for _file in _dir.walk():
					_file.makeWritable()
				print "Removing dir: %s" % _dir
				_dir.rmtree()

		# clean non-maya/pymel dirs from pymels
		print "Cleaning un-needed: %s/python/maya/pymel" % _pNetworkLoc
		pyMelDirs = ['pymel-1.0.2', 'pymel-1.0.3']
		for pyMelDir in pyMelDirs:
			if not Path('%s/python/maya/%s' % (_pNetworkLoc, pyMelDir)).exists():
				logger.error("No pymel dir found, probably failed copy earlier.")
				if not _dir.namebase == 'maya' and not _dir.namebase == 'pymel':
					# make writable
					for _file in _dir.walk():
						_file.makeWritable()
					print "Removing dir: %s" % _dir
					_dir.rmtree()
				for _file in Path('%s/python/maya/%s' % (_pNetworkLoc, pyMelDir)).files():
					_file.makeWritable()
					print "Removing file: %s" % _file
					_file.remove()

		# clean apps
		print "Cleaning un-needed: %s/python/apps" % _pNetworkLoc
		for _dir in Path('%s/python/apps' % _pNetworkLoc).dirs():
			if not _dir.namebase == 'APE':
				# make writable
				for _file in _dir.walk():
					_file.makeWritable()
				print "Removing dir: %s" % _dir
				_dir.rmtree()

		# clean misc
		print "Cleaning un-needed project files in : %s" % _pNetworkLoc
		unNeededRoot = ['.project', '.pydevproject', 'artMonkey.wpr', 'artMonkey.wpu']
		for unNeeded in unNeededRoot:
			for _file in _pNetworkLoc.files():
				if _file.basename() == unNeeded:
					# make writable
					_file.makeWritable()
					print "Removing file: %s" % _file
					_file.remove()

		print "**********************************"
		print "Push To Network complete."
		print "**********************************"
		logger.info("**********************************")
		logger.info("Push To Network complete.")
		logger.info("**********************************")

		return result

	def removePYfiles(self, pathToScrape='', optionalExt='.py'):
		''' removes all .py files from directory
		NOTE: may need to make non-Read only
			Params:
				pathToScrape: directory to process
				optionalExt: can remove .pyc if needed
			Returns: True/False?
		'''
		completeSuccess = True
		logger.info("Removing %s files from : '%s'" % (optionalExt, pathToScrape))

		if not pathToScrape:
			pathToScrape = self.networkLoc

		count = 0
		for pyFile in Path(pathToScrape).walkfiles('*%s' % optionalExt):
			# skip Mobu/Maya startup files
			if "pcsGlobalSetup.py" in pyFile or "gVarInit.py" in pyFile or "sysGlobalMenu.py" in pyFile:
				# make non-readOnly
				pyFile.makeWritable()
				continue
			# template files need to stay
			if not "mayaMenuBoot.py" in pyFile:
				if not "teamMenu.py" in pyFile and not "teamMenuBoot.py" in pyFile:
						try:
							if Path(pyFile).isReadOnly:
								Path(pyFile).makeWritable()
							os.remove(pyFile)
							logger.debug("Removing: '%s'" % pyFile)
							count += 1
						except:
							logger.info("Failed to remove: '%s'" % pyFile)
							completeSuccess = False

		print "Removed %d %s files from : '%s'" % (count, optionalExt, pathToScrape)
		logger.info("Removed %d %s files from : '%s'" % (count, optionalExt, pathToScrape))

		print "**********************************"
		print "Remove %s complete." % optionalExt
		print "**********************************"
		logger.info("**********************************")
		logger.info("Remove %s complete." % optionalExt)
		logger.info("**********************************")

		return completeSuccess

	def swapGVarInit(self, direction='PCS'):
		# swap 'em
		gVarFile = '%s/python/common/core/gVarInit.py' % self.pipelineSourceLocation

		# Checkout APEinstaller.exe
		self.p4.fileName = gVarFile
		self.p4.p4CheckOut(desc="buildPipeline_Temp")

		try:
			f = open(gVarFile, "r")
			gVarContent = f.readlines()
			f.close()
			newLines = []
			for line in gVarContent:
				if "remoteLoc" in line:
					if '#@%s' % direction in line:
						newLines.append(line.replace('#r', 'r'))
					else:
						newLines.append('#%s' % line)
				else:
					newLines.append(line)

			f = open(gVarFile, "w")
			f.writelines(newLines)
			f.close()
		except:
			logger.info("Failed to mod '%s'" % gVarFile)
			print "Failed to mod '%s'" % gVarFile

			# revert
			self.p4.p4RevertFile()

		print "**********************************"
		print "swapGVarInit complete."
		print "**********************************"
		logger.info("**********************************")
		logger.info("swapGVarInit complete.")
		logger.info("**********************************")

def run():
	# default
	PipelineBuild(remoteBuild=True).buildPCSPipeline(compileInstaller=False, pyc=True, removePY=True, removePYC=True)

	# no pyc removal
#	PipelineBuild(remoteBuild=True).buildPCSPipeline(compileInstaller=False, pyc=True, removePY=True, removePYC=False)

	# no py removal
#	PipelineBuild(remoteBuild=True).buildPCSPipeline(compileInstaller=False, pyc=False, removePY=False, removePYC=False)

	# no pyc
#	PipelineBuild(remoteBuild=True).buildPCSPipeline(compileInstaller=False, pyc=False, removePY=True, removePYC=False)

	# local network
#	PipelineBuild(remoteBuild=False).buildPCSPipeline(compileInstaller=False, pyc=False, removePY=False, removePYC=True)

run()

if not __name__ == "__main__":
	print "common.build.buildPipeline imported"

redpajama_set_name: RedPajamaGithub


text:
« Back to Insights
The Importance of User Experience- the Poster!
By Frank Spillers
on September 21, 2006 - 1:37pm
The Importance of User Experience
Here's a poster that reflects some thoughts about user experience...all of the bottom row items (outcomes of positive user experiences) in the poster are based on empirical research. Let's review some of that research, a brief glimpse at the science behind what the poster is communicating...
About the poster project and translations into many languages below all these quotes (bottom of the post)...
Elements that contribute to a positive user experience: (the bottom row of the poster)
Loyalty > Trust > Perceived Credibility > Profitability > Intent to Return > Intent to Purchase > User Satisfaction > Word of Mouth
A few quotes that I think summarize the research nicely:
"We discovered that visitors will return to websites to which they have no loyalty simply because they're familiar with the interface. As soon as someone directs the individual to a competitor's website and the individual determines the competitor's website is less painful to navigate, they're gone". Usability Studies 101: Brand Loyalty by Joseph Carrabis
"Research findings point out that it takes more effort to develop new markets than to keep existing customers, and that existing customers tend to spend more money than new customers do. Repeat purchase behaviors occur after products are used. Hence, how to manage customer loyalty by means of product design becomes a critical issue to product designers and a key for company prosperity".A Preliminary Research on Product Design Strategies for Managing Customer Loyalty (PDF) Dr. Ding-Bang Luh, National Cheng Kung University, Taiwan
"In short, it appears, as many suspect, that distrust of the Internet undermines e-commerce. Specifically, those who perceive greater risks on the Internet are less likely to shop online. In turn, perceptions of risks are associated with bad experiences online". Trust in the Internet: The Social Dynamics of an Experience Technology. (PDF) by William Dutton and Adrian Shepherd, Oxford University
"The key finding is that trust is a long-term proposition that builds slowly as people use a site, get good results, and don't feel let down or cheated. In other words, true trust comes from a company's actual behavior towards customers experienced over an extended set of encounters. It's hard to build and easy to lose: a single violation of trust can destroy years of slowly accumulated credibility". "Trust or Bust: Communicating trustworthiness in web design" by Jakob Nielsen
Perceived Credibility
"Guideline #7: Make your site easy to use -- and useful". Stanford Guidelines for Web Credibility, Stanford University
"The rule of thumb in many usability-aware organizations is that the cost-benefit ratio for usability is $1:$10-$100. Once a system is in development, correcting a problem costs 10 times as much as fixing the same problem in design. If the system has been released, it costs 100 times as much relative to fixing in design." (Gilb, 1988)
"The average UI has some 40 flaws. Correcting the easiest 20 of these yields an average improvement in usability of 50%. The big win, however, occurs when usability is factored in from the beginning. This can yield efficiency improvements of over 700%." (Landauer, 1995)
"IBM's Web presence has traditionally been made up of a difficult-to-navigate labyrinth of disparate subsites, but a redesign made it more cohesive and user-friendly. According to IBM, the massive redesign effort quickly paid dividends. The company said in the month after the February 1999 re-launch that traffic to the Shop IBM online store increased 120 percent, and sales went up 400 percent." (Battey, 1999) Selected quotes from: The ROI of Usability from UPA
"In our first year we didn't spend a single dollar on advertising... the best dollars spent are those we use to improve the customer experience."- Jeff Bezos, Amazon.com
"Improving user experience can increase both revenue and customer satisfaction while lowering costs." - "Get ROI from Design", Forrester Research, June 2001
Intention to Purchase, Intention to Return
In my experience, it is wise to measure this from a web analytics AND usability research perspective. Usability tests are a great way to expose a design to all measurements (ease of use, ease of understanding, user satisfaction, perceived pleasure, purchase intention and intent to return). Contact with users provides that *context* that pure web analytics measurements do not.
"On the web, customer retention can be defined as whether or not a customer decides to return to a website. In terms of metrics, this can be quantified as the number of customers who a) intend to return and b) intend to purchase again from the website".
"Understanding "intention of return and return purchase"hedges on one action: the decision the user makes based on their experience with the site, during and immediately after the session". How exactly is website usability, customer retention and brand perception linked? by Frank Spillers
User Satisfaction (or the measurability of it)
User satisfaction is often not studied in detail. It is usually just referred to in a paper or article. I am guilty of that, as is Jakob Nielsen in his writings.
"Two important aspects of the overall consumer satisfaction are: (i) the level of satisfaction associated with the final chosen product (e.g., Day, 1984; Spreng et al., 1996), and (ii) the level of satisfaction associated with the purchasing process (e.g., Arnould and Price, 1993; Oliver, 1993). The former has been referred to as the product satisfaction and the latter has been referred to as the process satisfaction. The product satisfaction can be measured in two aspects: (i) a holistic satisfaction towards a chosen product (Spreng et al., 1996) and (ii) the specific levels of satisfaction towards the product attributes (Oliver, 1993). A typical means to evaluate product satisfaction is to measure rated consumers' affective responses to the selected products (Cole and Balasubramanian, 1993; Westbrook, 1987; Mano and Oliver, 1993; Westbrook and Oliver, 1991)".
Another excellent study that shows the link of user satisfaction to perception of pleasure and emotional aspects of a design (aka Emotion Design- my earlier post), too long to quote... "A systematic approach for coupling user satisfaction with product design" by Han, Sung and Hong, Sang in Ergonomics (2003) v 46. no 13/14.
"Jupiter Communications reports that word-of-mouth is second only to a strong offline brand in building consumer trust.Almost half of consumers surveyed by Jupiter, cite word-of-mouth as a key influence in their online shopping habits...
The average U.S. adult online shopper now tells about 12 other people including family, friends, relatives and co-workers about their online shopping experiences.Contrast this to the average of nine people who hear rave movie reviews or six who are told about great restaurants". Reported May 27, 1999, Iconocast
"Word-of-Mouth expands the purchase cycle. Word-of-Mouth impacts customer value. Post-purchase actions drive evangelism. Advertising vs. Word-of-Moth "When Consumers Control the Message: When Real People are the Biggest Advertisers". Dave Evans et. Al. 2005, Word of Mouth Marketing Association conference slides. More info at the Word of Mouth organization: WOMMA
"A recent survey by Opinion Research discovered that online shopping escapades start more tongues wagging than either movies or restaurants". Latest research (2006) on Word of Mouth impact: http://jcmc.indiana.edu/vol11/issue4/sun.html
About the Poster Project
I am really happy how the poster turned out! Bryce Glass and I collaborated on this together. I was impressed by his earlier efforts to illustrate a "Flickr user model". Bryce's mastery of Illustrator is note-worthy, even if you think the poster is cluttered (If you do, take your time with it and don't take it too seriously- it's an inspiration piece).
How the poster was made
Users were interviewed, Bryce's earlier design was analyzed for what works and what doesn't work. We learned a lot from each other about visual design and the usability of flows... and the result is what you see above.
We have had some interesting feedback from users on Flickr:
"Great work, printed it out and it's up in the hallway of our UX group!" (fotografik)
"Suitable for poster-size printing and hanging in our development team area!" (Greg Bernhardt)
"I can only say: "WOW!" :-)" (szymonw)
This lead me to have the poster printed out to help teams evangelize usability! (production and design costs were paid for by my company, Experience Dynamics).
The point of the poster is to provide a learning piece (currently used by over a dozen universities throughout the world) and inspiration to design and development teams. Having this type of collateral on your wall might cause someone to actually pay closer attention to your efforts ;-)
This poster is an upgrade, if you will, to the UPA poster that hung on walls in team areas where I worked in the past and also the little IBM posters that you see around people's cubes.
Translations of the Poster
If you are interested in translating this poster, I will send you a free printed English version;-) (Inquire about poster translation). Since putting this shout out a few weeks ago, many people have expressed interest in translation- the result is below.
Download a free translation of this poster in the following languages: (see bottom left for latest additions)
Coming soon: Turkish, Polish, Hebrew, Portuguese, Russian.
Buy a Poster!
Buy a poster, and support the poster project.
Thanks and Best Wishes,
Frank Spillers
p.s. Is there a usability topic or theme that you would like to see clarified with a visual like this?
Usability Methodology
Facebook Twitter YouTubePinterest
Agile UX
Design and Emotion
Graphic Design issues
Hiring Usability Consultants
Interaction Design techniques
Lean UX
Mobile Usability
Social Interfaces
Telematics (Automotive)
Usability Trends
User Advocacy
UX Culture
UX Management
UX Power Up
Web Application Usability

redpajama_set_name: RedPajamaCommonCrawl


By Ambra Gaudin. Loveseat. Published at Tuesday, February 20th, 2018 - 13:05:03 PM.
The most immediate change most people notice about today's loveseats is the sheer range of color. Furniture designers are getting away from standard earth tones and muted colors, and are instead embracing the entire rainbow. Dramatic colors like deep cobalt, crimson, mint, and even fuchsia are starting to make appearances. Designers are doubtless hoping that loveseats crafted in these colors will make striking additions to show rooms, and will in turn draw in consumers.
The sleeper loveseat. This is basically exactly the same as the settee loveseat, but can be pulled out to create extra sleeping space for guests. This is a great and very versatile piece of furniture for anyone who is living in an apartment and wants their space to be uncluttered yet still practical.


Inverter generator ratings represent no-load sound levels. Noise level tested at seven meters (75% load). Rating represents minimum noise level rating.
*Models are compliant in 49 states. Cannot be sold in California.


CIM Commercial Trust Corp (NASDAQ:CMCT) hit a new 52-week high on Monday . The company traded as high as $19.86 and last traded at $19.50, with a volume of 2156 shares traded. The stock had previously closed at $19.60.
Separately, BidaskClub upgraded CIM Commercial Trust from a "buy" rating to a "strong-buy" rating in a research note on Friday, March 1st.
The company has a current ratio of 3.18, a quick ratio of 3.18 and a debt-to-equity ratio of 1.65.
The firm also recently announced a quarterly dividend, which was paid on Monday, March 25th. Investors of record on Wednesday, March 6th were given a dividend of $0.125 per share. This represents a $0.50 annualized dividend and a yield of 2.53%. The ex-dividend date was Tuesday, March 5th.
A hedge fund recently raised its stake in CIM Commercial Trust stock. Wedbush Securities Inc. boosted its holdings in shares of CIM Commercial Trust Corp (NASDAQ:CMCT) by 83.9% during the 4th quarter, according to its most recent filing with the Securities and Exchange Commission (SEC). The institutional investor owned 132,888 shares of the real estate investment trust's stock after buying an additional 60,627 shares during the period. Wedbush Securities Inc. owned approximately 0.30% of CIM Commercial Trust worth $2,017,000 as of its most recent filing with the Securities and Exchange Commission (SEC). 1.24% of the stock is currently owned by institutional investors.
ILLEGAL ACTIVITY WARNING: This report was first reported by The Lincolnian Online and is the sole property of of The Lincolnian Online. If you are accessing this report on another site, it was stolen and reposted in violation of international copyright & trademark law. The original version of this report can be read at https://www.thelincolnianonline.com/2019/04/17/cim-commercial-trust-cmct-sets-new-52-week-high-at-19-86.html.
CIM Commercial is a real estate investment trust that primarily acquires, owns, and operates Class A and creative office assets in vibrant and improving urban communities throughout the United States. Its properties are primarily located in Los Angeles, the San Francisco Bay Area and Washington, DC CIM Commercial is operated by affiliates of CIM Group, L.P., a vertically-integrated owner and operator of real assets with multi-disciplinary expertise and in-house research, acquisition, credit analysis, development, finance, leasing, and asset management capabilities.
Receive News & Ratings for CIM Commercial Trust Daily - Enter your email address below to receive a concise daily summary of the latest news and analysts' ratings for CIM Commercial Trust and related companies with MarketBeat.com's FREE daily email newsletter.


Running as fast as I can. I can feel them breathing down my neck. My demons, my dark side. Running? Running for hope, for expectations, for a better me, for a better future. Still running...I trip but pull myself back up and surpress the pain. I run, I'm almost there! I feel my weight drop. I look back and see that its my fears, and devilish thoughts that fall to the ground. And my anguished heart is made pure, as prue as it can be at the moment. No more running, No! Now I fly high, high and free. And the riddle that is my my life is starting to make sense... Because I have a great teacher.
I pass you in the hall and smile.
But its a different kind of smile.
and hoping I can get over you.
I smile because I don't need you.
but God has made me strong.
you're happy now, witch is all I could ask for.
and think maybe this time.
I won't get my heart ripped out.
I won't get lied to.
I will be in love and happy at the same time.
He won't be un faithful.
My tears won't come crashing down.


Dr. Stirling will describe aspects of the natural history of polar bears, their relationships with their marine mammal prey and their dependence on sea ice as a platform to hunt from. Climate warming is causing significant changes to the distribution and availability of sea ice at critical times of the year. Significant negative effects of the loss of ice on polar bears, and on the seals they depend upon, have been documented in Western Hudson Bay and the Southern Beaufort Sea in Canada. Some effects are also being documented in Svalbard and similar observations will likely follow in other populations.


text:
Q: how to setup rest api client in codeigniter ,spark and curl are not working,how to get data with basic aut in rest api Please help me to setup rest API client in Codeigniter, i did setup but its showing error of spark and curl, i searched in the internet ,got to know that spark and curl are not using now a days , so how to get a rest API (basic-authentication) data
$this->load->spark('restclient/2.1.0');
// Load the library
$this->load->library('rest');
// Run some setup
$this->rest->initialize(array('server' => 'http://api.twitter.com/'));
// Pull in an array of tweets
$tweets = $this->rest->get('1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=jenksuy&count=2');
$tweetobjects = json_decode($tweets);
foreach ($tweetobjects['results'] as $tweet) {
    log_message('info', $tweet['text']);
}

redpajama_set_name: RedPajamaStackExchange


text:
The Poynter Institute
Online hoaxes
PunditFact
PolitiFact Videos
Truth-o-Meter
Biden Promise Tracker
Trump-O-Meter
Obameter
Latest Promises
Who pays for PolitiFact?
Suggest a Fact-check
Corrections and Updates
The Facts Newsletter
Stand up for the facts!
Our only agenda is to publish the truth so you can be an informed participant in democracy.
We need your help.
I would like to contribute
stated on November 14, 2016 in an article on InfoWars:
"Report: 3 million votes in presidential election cast by illegal aliens."
By Allison Graves November 18, 2016
Fact-check: Did 3 million undocumented immigrants vote in this year's election?
Were there 3 million illegal votes from undocumented immigrants in this year's presidential election? Well, that's what some websites are saying.
"Report: 3 million votes in presidential election cast by illegal aliens," reads a headline on InfoWars, a conspiracy website ran by Alex Jones. The article has been shared via Facebook more than 48,000 times when we last looked.
Other websites also have touted this report, including Milo, TheNewAmerican and FreedomDaily.
So is there any truth to it?
Well, we don't know for absolute certain. But the report is actually a tweet, and the person who authored the tweet won't explain how he arrived at his figure. If that isn't reason enough to be skeptical, independent experts and historical analyses suggest it's highly suspect.
In other words, don't buy it.
Where's the report?
As evidence of its claim, InfoWars' headline refers to a report from VoteFraud.org and tweets from Gregg Phillips, whose Twitter profile says he's the founder of VoteStand, a voter fraud reporting app.
There is no report from VoteFraud.org, however, and Phillips told PolitiFact he is not affiliated with that website. The information comes from tweets made by from Phillips on Nov. 11 and Nov. 13.
We have verified more than three million votes cast by non-citizens.
We are joining .@TrueTheVote to initiate legal action. #unrigged
— Gregg Phillips (@JumpVote) November 13, 2016
Completed analysis of database of 180 million voter registrations.
Number of non-citizen votes exceeds 3 million.
Consulting legal team.
Phillips would not provide any additional information when asked by PolitiFact. He said he has chosen not to release more information because he is still working on analyzing the data and verifying its accuracy. Phillips would also not say what the data is or where it came from, or what methodology he used.
Phillips said he would release the information publicly once he is finally finished.
According to his page on LinkedIn, Phillips is a former finance director of the Alabama Republican Party. He also served as executive director of the Mississippi Republican Party and was managing director of a super PAC that supported Newt Gingrich's 2012 campaign for president.
Plenty of reason to be skeptical
Featured Fact-check
stated on January 8, 2023 in a tweet
Photo shows a copycat 'QAnon shaman' at attack on Brazil's capital.
By Samantha Putterman • January 9, 2023
While we have no idea how Phillips arrived at his claim that 3-million noncitizens voted, people who have made similar claims in the past have cited a 2014 report that claims 6.4 percent of non-citizens voted in 2008 and 2.2 percent of non-citizens voted in 2010 midterm congressional elections.
That report was based on data from a Harvard survey of people. But the data was flawed, which created flaws in the subsequent report.
The authors of the survey say a small percentage of respondents, who are citizens, accidentally misidentified themselves as noncitizens on the survey. This is because the respondents didn't read the question carefully and accidentally selected the wrong response to the question.
How do researchers know this? One of the authors of the survey, Brian Schaffner, said people changed their answers later when they were asked about their citizenship.
"When we took out people who changed their answer on the citizenship question and only look at people who answered consistently that they were noncitizens, we found no reported noncitizens who voted," Schaffner told PolitiFact.
Other research contradicts Phillips' tweet.
News 21, a national investigative reporting project funded by the Carnegie Corporation of New York and the John S. and James L. Knight Foundation, found just 56 cases of noncitizens voting between 2000 and 2011.
A report by the liberal Brennan Center for Justice at New York University School of Law found that most cases of noncitizens voting were accidental. "Although there are a few recorded examples in which noncitizens have apparently registered or voted, investigators have concluded that they were likely not aware that doing so was improper," reads the 2007 report.
States that have tried to purge noncitizens from voter rolls, meanwhile, have found even government data lacking.
In 2012, Florida Governor Rick Scott's administration started an effort trying to crack down on noncitizens voting by comparing driver's license data against voter rolls.
Through this process the Florida Department of State created a list of 182,000 potential noncitizens that had voted. That number was whittled down to 2,700, then to about 200 before the purge was stopped amid criticism that the data was flawed given the number of false positives — including a Brooklyn-born World War II vet.
Ultimately, only 85 people were removed from the voting rolls. State officials began to pursue a second attempt at a purge in advance of the 2014 election but then abandoned that effort, too.
Richard Hasen, an election law expert at the University of California, Irvine, called Phillips' claim "fake news."
"There is no credible evidence I have seen to show large numbers of noncitizens voting in U.S. elections anywhere," Hasen said. "The idea that 3 million noncitizens could have illegally voted in our elections without being detected is obscenely ludicrous."
Our ruling
Reports claim 3 million "illegal aliens" cast votes in this year's election.
The articles point back to tweets from Gregg Phillips, who has worked for the Republican Party and has a voter fraud reporting app. But Phillips will not provide any evidence to support his claim, which happens to be undermined by publicly available information.
If Phillips does release a more detailed report, we will consider that information. But for now, this claim is inaccurate. We rate it False.
Share the Facts
PolitiFact Rating:
https://www.infowars.com/report-three-million-votes-in-presidential-election-cast-by-illegal-aliens/
Internet rumors
In a blog post
Email interview with Rick Hasen, UC-Irvine School of Law political science professor, Nov. 17
Email interview with Adam Cox, law professor at New York University, Nov. 17
Interview, Gregg Phillips, Nov. 17
News 21, "Comprehensive Database of U.S. Voter Fraud Uncovers No Evidence That Photo ID Is Needed," Aug. 12, 2012
Brennan Center for Justice, "The Truth About Voter Fraud," 2007
InfoWars, "REPORT: THREE MILLION VOTES IN PRESIDENTIAL ELECTION CAST BY ILLEGAL ALIENS," Nov. 14, 2016
Milo, "REPORT: ILLEGAL IMMIGRANTS CAST MORE THAN 3 MILLION VOTES IN PRESIDENTIAL ELECTION," Nov. 14, 2016
TheNewAmerican, "Vote Fraud Monitoring Group Says Three Million Noncitizens Voted in Presidential Election," Nov. 14, 2016
Freedom Daily, "3 Million Illegal Immigrants Being Investigated For Voting After Obama Told Them It Was Safe To Do So…" no date
Gregg Phillips, Twitter
The Washington Post, "Florida's voter purge explained," June 18, 2012
Tampa Bay Times, "Florida Gov. Rick Scott's 2012 voter purge violated federal law, court rules," April 1, 2014
PolitiFact, "Donald Trump wrongly says 14 percent of noncitizens are registered to vote," Oct. 24
PolitiFact, "U.S. Rep. Hastings says Florida's noncitizen voter purge is a "backdoor poll tax." June 7
The Washington Post, "Could non-citizens decide the November election?" Oct. 24, 2014
Read About Our Process
The Principles of the Truth-O-Meter
Browse the Truth-O-Meter
More by Allison Graves
Democratic Governors Association
stated on July 13, 2018 a post on Medium:
Says Adam Putnam "backed a water bill that gutted water quality regulations."
By Allison Graves • July 18, 2018
Rick Scott
stated on June 13, 2018 an ad:
Says Sen. Bill Nelson "voted for higher taxes" 349 times.
By Allison Graves • July 5, 2018
stated on June 28, 2018 a Fox News debate:
Says Adam Putnam "endorsed the Schumer-Obama Gang of Eight immigration amnesty."
By Allison Graves • June 29, 2018
Says he "actually wrote the bipartisan law that makes it illegal to drill off Florida's coast."
Adam Putnam
stated on June 7, 2018 an interview with Fox News:
Florida taxpayers "pay tens of millions of dollars a year to feed and house in our prison system criminal illegal aliens."
New Republican PAC
stated on June 11, 2018 a political ad:
Says Bill Nelson voted for "cuts to Medicare providers" and voted to weaken "Social Security protections" as a U.S. senator.
stated on June 20, 2018 a debate:
Under Philip Levine, Miami Beach "passed a resolution to ban assault rifles, which was not enforceable and never enforced. He passed a resolution to raise the minimum wage, which actually no one got the benefit of because it was not enforced."
By Allison Graves • June 9, 2018
stated on June 6, 2018 in a press release:
"Flip Flop! After opposing term limits for decades, Adam Putnam adopts Donald Trump and Ron DeSantis' position."
stated on June 2, 2018 during a BBQ :
"The bulk of the problem with the opioid epidemic is the fentanyl and all the synthetic drugs coming across the southern border."
Florida House Majority Office
stated on May 17, 2018 a video:
It is a "myth" that "per-student funding only rose by 47 cents this year."
By Allison Graves • May 30, 2018
Senate Majority PAC
stated on May 21, 2018 in an ad:
Says Bill Nelson is "one of America's most independent senators."
stated on May 14, 2018 a post on Facebook:
"BREAKING NEWS: Donald Trump On His Way To Donate Kidney To Melania Trump."
"Legendary Actor Sidney Poitier: Donald Trump might become 'The Greatest Of All Time.' "
The Collective super PAC
stated on May 11, 2018 an ad:
Says Gwen Graham "voted against President Obama 52 percent of the time."
stated on May 14, 2018 a post on the Internet:
Says Julia Roberts told Celine Dion, "If you hate Trump you can go in your country."
stated on January 26, 2023 in a video:
The amount the U.S. has spent in Ukraine is "double the U.S. expenditure for its own war in Afghanistan."
By Jeff Cercone • January 27, 2023
Viral image
stated on January 27, 2023 in an Instagram post:
A photo shows "Barack Obama dressed up as Baphomet (Lucifer)."
By Ciara O'Rourke • January 27, 2023
stated on January 9, 2023 in a Facebook post:
President Joe Biden signed an executive order "making health insurance free for qualifying Americans."
stated on January 26, 2023 in a Facebook post:
"Scientists warn eggs are causing thousands of people to 'suddenly' form blood clots."
Hospital photo of Damar Hamlin proves "he's a corpse."
stated on January 25, 2023 in a tweet:
"Two years ago this week, 18 million people were out of work needing unemployment benefits. Today, that number is under 1.6 million, the lowest in decades."
By Louis Jacobson • January 27, 2023
"The average American has anywhere from 5 to 15 pounds" of stool stuck in their gut.
By Madison Czopek • January 27, 2023
stated on January 9, 2023 in a video shared on Instagram:
"The World Health Organization has been working since 1974 on vaccines to create permanent sterility."
The Transportation Security Administration spent "a couple hundred million dollars" on gender-neutral screening technology.
By Gabrielle Settles • January 27, 2023
Video shows hecklers shouting profanities at President Joe Biden.
Support independent fact-checking.
In a world of wild talk and fake news, help us stand up for the facts.
801 3rd St. S
Recent Articles and Fact-checks
Recent Fact-checks
©All Rights Reserved Poynter Institute 2020, a 501(c)(3) nonprofit organization


Your fingers, numbed by the cold of the hospital room, flip through the yellowed pages of the journal. After Hannah leaves, Darren clearly goes mental. From that page on, his writing becomes sloppy and his tone of voice becomes self-deprecating.
"I've never felt this alone. When your only company is a two-year-old, there's only so much to talk about.
Hannah has left me devastated and I don't know how to move on from this. I can't even watch TV without thinking about her.
The entry ends there and your heart plummets. You feel for this broken man in a way that you've never felt for anyone. You didn't think it was possible to feel connected to someone so closely through loneliness. Even being in this hospital room, you feel suffocated and depressed. No one but the nurse that brings your food has visited you during your three-night stay.
Thankfully you return home tomorrow, though you're not sure you should be thankful. Judging by the journal pages to come, you fear something might be wrong with the house itself.
The sketchy writing style seemed lazy and strewn over the pages without care. It grew worse on the next page.
You bolt upright from resting against the pillows behind you. The journal is within inches of your face as you continue to read the entry.
A wheeze escapes your lips as you struggle to breathe. Your face turns red and the room feels as if it's closing in on you.
Something is in that house, and tomorrow, you must face it.


2000 post-graduate student bed spaces will be available on the North West Cambridge Development.
The first phase includes 325 bedrooms for postgraduates. Leased to Girton College, the purpose-built complex will be known as Swirles Court, which was designed by R H Partnership.
Photographs above are by Richard Chivers.


Nicely furnished apartment in a quiet neighborhood. A 5 minute walk to Geisinger. 1 bedroom apartment comes fully furnished plus washer, dryer,refrigerator,stove, microwave,toaster, can opener, dishes, pots and pans, silverware and bed linens.
Landlord pays for heat, water, and sewer. Landlord cuts the grass and shovels the sidewalks. We will try to make your stay a pleasant one.


text:
Apple Didn't Delete Movies From Customer's iTunes Account
Last week, we discussed the story of Anders G da Silva, an iTunes user who discovered several movies had been removed from his iTunes library. Apple confirmed the removal and told da Silva no refunds would be forthcoming, but would he like a few free video rentals? This came off rather poorly, to say the least.
The story, it turns out, is rather more complicated — but you wouldn't know that from reading Apple's own communication on the topic. The original message from Apple stated "After reviewing this case, I have noticed that the content provider has removed these movies from the Canadian Store. Hence, these movies are not available in the Canada iTunes Store at this time."
CNet contacted da Silva and eventually discovered the source of the problem. Anders moved to Canada from Australia roughly nine months ago and he bought the films in question in Australia before he moved. Some of his Australian content still works perfectly, but three films — Cars, Cars 2, and The Grand Budapest Hotel — aren't in his library. It's not a question of the films not being for sale, either — all three are still offered in the Canadian and Australian versions of the iTunes Store.
The problem, in this case, is related to movie region lockouts — artificial barriers put in place to prevent film lovers from taking content from one market into other areas. We've seen such barriers falling in physical media. Blu-ray has three regions to DVD's six, and apparently, most Blu-ray discs don't implement region locking anyway. But it's been deployed even more widely in digital media of late. Companies like Netflix have begun cracking down more aggressively on customers who use VPNs to view the service from other markets.
With that said, it's clear Apple had no plan in place for how to deal with customers who move across the world and would reasonably like to retain access to content they purchased legally when they lived in Australia. The fact that the company miscommunicated the problems with his own account to da Silva is evidence of that. Apple has promised to send da Silva instructions for a workaround that will allow him to still view content he legally purchased, but he'll have to cancel any of his existing Canadian subscription services and will lose any Canadian store credit.
Even if Apple is able to restore da Silva's ability to access content he legally purchased, the company needs a much better strategy for dealing with situations like this. It doesn't really change our own conclusions from last week, either. Ultimately, customers don't care if they lose access to content because a reseller chose to stop selling it or because they moved. What they care about is losing access to content they bought. It doesn't sound like Apple actually bothered to figure out what went wrong in da Silva's case until the press got involved, which isn't a great look here, either.
Obviously, Apple cannot simply tell Disney or any other film distributor how it will or won't license its content. At the same time, however, Apple is one of just a handful of companies with the potential market power to influence how said content is delivered to the end customer. The App Store isn't just a storefront and digital distribution companies need to take pains to ensure the chain of ownership is as secure for digital products as it is for physical ones if they want their customers to view a physical and digital purchase as being functionally identical.
Now Read: Apple's AirPower Charger May Be Doomed By Overheating, Comm Issues, Apple is Deleting Movies Customers Purchased on iTunes, and Netflix Experiments With Bypassing Apple App Store
Anders G da Silva


text:
FDA approves marketing for a contraception app
(WSAW)
By WBAY
Published: Aug. 13, 2018 at 10:30 PM CDT
For the first time the U.S Food and Drug Administration approved a birth control app to be marketed as a method of contraception. It's called Natural Cycles, and it calculates peak fertility using a woman's daily body temperature and menstrual cycle information.
"Basically it's an awareness of the signs and symptoms of fertility in a woman's body, and so there are actually specific signs that women look for on a daily basis, and that those signs actually let the woman know if she's in a fertile time or if she's not in a fertile time," said Amber Nonn, who is a diocesan instructor for Natural Family Planning.
Nonn said it can be empowering for women and couples, and this new age approach, using apps like Natural Cycles, all comes down to education.
"It's kind of interesting that there would be an FDA approval on something that's an educational thing and not specifically a medicine, but I'm glad that there is this approval because it's brought awareness to what NFP is and maybe some more validity out there that it's an option out there for couples," said Nonn.
The app tells users when they are more likely to be fertile and should abstain from sex or use protection if they don't want to get pregnant.
According to the FDA, this newly approved app, Natural Cycles, to be marketed as a form of contraception, had a perfect-use failure rate of 1.8 percent in clinical studies involving more than 15,500 women, with a failure rate of 6.5 percent.
However, health care professionals say they want to remind users that no form of contraception is perfect or 100 percent effective.
UPDATE: Missing Marathon County man found dead
Brothers united for the first time
Stevens Point remote-controlled racing fills the winter void of racers
Woman killed in Portage County crash, witnesses sought
New COVID-19 vaccine data shows county level progress of roll out
UW Health notes decline in HPV vaccinations amid COVID-19
Putting your physical and mental wellbeing resolutions into action
BUDDY CHECK 7: Study looks at correlation between obesity and breast cancer risk
Wis. health care workers learning as COVID-19 vaccination begins for medical personnel


From March 17th to 22nd, thousands of activists from over 30 countries gathered in Brasilia for the Alternative World Water Forum (FAMA). The event brought together an impressive array of groups, including indigenous peoples, fishermen, traditional riverbank communities, popular movements from the periphery of urban centers, union workers opposed to the privatization of water and sanitation systems, and environmental and human rights NGOs and students, among others. Participants of this civil society forum shared the position that access to safe drinking water and sanitation services is a basic human right, and that water must be understood as a source of life and an integral part of Mother Nature to be protected - with direct implications for public policies.
Participants at FAMA questioned why Brazilian agencies invested over $15 million in public funds in a corporate-led event that doesn't produce concrete results in terms of commitments from governments. Meanwhile, individual entrance fees of 375 to 850 euros meant that the World Water Forum was inaccessible to common citizens.
Following an opening ceremony – inspired by music and dance of indigenous peoples and quilombolas(descendants of African slaves) – FAMA held a series of "self-organized activities" on the campus of the University of Brasilia over the weekend (March 17-18). The sessions covered conflicts over water related to economic activities such as hydroelectric dams, mining and agribusiness, urbanization and land speculation, as well as alternative solutions based on concerns for social justice and environmental protection, addressing issues of class, gender and ethnicity.
Over the following three days, plenary events and an encampment of social movements took place at a large pavillion located in the the Central Park of Brasilia – near the venue of the 8th World Water Forum. Activities included assemblies organized by women, indigenous peoples and other traditional populations. The movement commemorated World Water Day with a spectacular march through the streets of central Brasilia on March 22. This was followed by an inter-ecumenical service in which Christian, Buddhist, Muslim, indigenous and quilombola leaders highlighed the sacred nature of water and our collective responsibility for its protection.
International Rivers was a partner in organizing this year's Alternative World Water Forum. Through our regional office in Brasilia, we participated in preparatory meetings, especially with a local organizing committee that played a key role. Working with the CASA Socio-Environmental Fund (which provides small grants to grassroots organizations), we helped ensure participation of indigenous leaders and other community representatives in FAMA. Together with such partners as the Federal Public Prosecutors' Office (MPF), the Brazilian Movement of Dam-Affected Peoples, and a pan-Amazonian alliance of social movements in defense of rivers, we organized discussions on hydroelectric dams and other water-related conflicts, especially involving large "development" projects, as well as alternatives for sustainable and socially-just energy and water solutions. Our 2016 documentary film Belo Monte: After the Flood, co-produced with filmaker Todd Southgate, was screened as part of a film festival "Water and Resistance Struggles" included in FAMA's program of activities.
The original short version of the video in Portuguese is linked here. An extended version of the video, highlighting conflicts and social movements to protect water and human rights in the Rio Doce, Rio Juruena, Rio Tapajós and Rio Xingu, is linked here.
An initial screening of the FAMA video took place last Thursday evening (April 26th) at an annual national gathering of indigenous peoples (Acampamento Terra Livre, or "Free Land Camp") in Brasilia. The event brought together thousands of representatives of native peoples from all over Brazil to protest against recent unprecedented attempts to roll back recognition of indigenous peoples' rights and territories. It seemed an appropriate moment and venue to premier the video, given the fundamental contributions of indigenous peoples to the success of FAMA.


Welcome to Wadsworth's Elite Mobile Detailing Team!
We have 61 of the best mobile detailers in the Wadsworth area who have served 14,163 extremely satisfied local customers!
Read what our 14,163 super happy customers in Wadsworth had to say about their mobile car, boat or RV detailing experience with us in their reviews below!
Reviews from happy customers near Wadsworth, OH!
"This was the greatest thing ever! Jessica was prompt, courteous, friendly and thorough. Couldn\'t ask for more! "
"Very nice and polite gentleman. Car looks and smells awesome!"
Not in Wadsworth? Check to see if our mobile detailing is available in your location.


text:
La selección de hockey sobre hielo sub-20 de la Unión Soviética era el equipo nacional de hockey sobre hielo sub-20 de la Unión Soviética. El equipo representó a la Unión Soviética en el Campeonato Mundial Juvenil de Hockey sobre Hielo. El equipo ha ganado once medallas de oro (las tres primeras no oficiales, una vez más como CIS ), tres medallas de plata y dos medallas de bronce en el Campeonato Mundial Sub-20.

En el Campeonato Mundial Juvenil de Hockey sobre Hielo de 1987, el equipo fue descalificado como resultado del Punch-up en Piestany contra la selección de hockey sobre hielo sub-20 de Canadá. El administrador soviético Yuri Korolev lamentó que ocurriera el incidente, pero no admitió ninguna culpa. Sintió que el juego debería haber terminado en lugar de que ambos equipos fueran descalificados del torneo.

Participaciones

Campeonato Mundial Juvenil

 1974 -  (torneo no oficial)
 1975 -  (torneo no oficial)
 1976 -  (torneo no oficial)
 1977 -
 1978 -
 1979 -
 1980 -
 1981 -
 1982 - 4°
 1983 -
 1984 -
 1985 -
 1986 -
 1987 - Descalificado
 1988 -
 1989 -
 1990 -
 1991 -
 1992 -  (como )

Referencias

Selecciones deportivas de la Unión Soviética

redpajama_set_name: RedPajamaWikipedia


text:
LEND A HAND: Young Leaders Society names award-winners
Five community members earned West Alabama Young Leaders Awards.
The awards are designed to highlight people between the ages of 21 and 45 who have improved the quality of life in West Alabama through volunteerism, community service, corporate stewardship or government advocacy.
The winners were chosen by United Way of West Alabama's Young Leaders Society. The third annual awards were presented at a Feb. 22 luncheon with each honoree receiving a commemorative trophy, a place on a perpetual plaque and given a gift of $500 to be donated to the West Alabama nonprofit of their choice.
Thomas Powe of Randall Reilly received the David Reynolds Inspiration Award. Receiving the United in Service Award were Jheovanny Gomez of Jalapenos Mexican Grill, Chris Gunter of Buffalo Rock, Caroline Williams of BBVA Compass Bank and JacQuan Winters of the Kristen Amerson Youth Foundation.
• Powe is the philanthropy chair for Randall Reilly. He is a Big Brother to Keyon, whom he meets with every week. Every Friday, he keeps his lunch date with his friend, Frannie Clark, who has cerebral palsy. He serves as a leader on multiple local nonprofit boards, including Family Counseling Services, Red Cross, Phoenix House and Autism Society of Alabama.
• For nearly a decade, Gomez has served on the board of directors for the Boys and Girls Club of West Alabama, currently serving as board chairman. Under his leadership, the BGCWA opened two school-based sites last summer, has seen a 35 percent increase in membership and grown the overall budget by 37 percent. He served as special guest reader for this year's Read for the Record in West Alabama where he read in both English and Spanish to children via video recording to multiple school systems.
• Gunter serves on multiple boards of directors including Veterans Memorial Park, Tuscaloosa Crime Stoppers, Big Brothers Big Sisters, Chamber of Commerce of West Alabama and Tuscaloosa's One Place. Due in large part to his leadership on the TOP board, the agency was able to relocate to a new home downtown after being housed in multiple rental houses and FEMA portables.
• In her role at BBVA Compass Bank, Williams organizes the company's Adopt-a-School and Habitat for Humanity efforts. She serves on the board of directors for Junior League Tuscaloosa. She is the current secretary for Rotary Club Tuscaloosa. Within United Way of West Alabama, Caroline serves on the executive team of YLS as VP of Fund Development, volunteers for Day of Action and organizes their Tinsel Trail tree each year.
• After his younger sister took her life, Winters founded and leads a nonprofit dedicated to his sister and the mission of suicide prevention, the Kristen Amerson Youth Foundation. Winters has published a children's book that tells the story of "Kristen's Rainy Day," and started a program at Eastwood Middle to help students strengthen their self-awareness, relationship skills and responsible decision-making.


text:
Cablevision Responds to Changes
In her recent column about Cablevision Systems Corp.'s realignment of its channel lineups throughout its New York cluster, Multichannel News editor in chief Marianne Paskowski summoned the David Bowie song, "Changes," to describe our actions.
The more appropriate Bowie reference is his film, The Man Who Fell to Earth, or: Where have you been for the past two months?
Surprisingly, Ms. Paskowski seems to have missed the mountains of publicity that preceded our move to make our channel lineups more uniform and logical throughout our New York tristate service area. Our massive communications effort was a model for what a cable company can do to rearrange its channel lineups successfully with minimal inconvenience for customers.
In fact, call volumes on the day the changes took effect were only slightly heavier than normal.
In advance of the changes, Cablevision mailed two channel lineups separately to every home. The pieces carried large bold headlines on the outside that read, "Many of Your Favorite Channels Are Moving Today."
We placed ads in local newspapers, utilized billboards, communicated the changes extensively on our cable-TV systems and sent every customer a free issue of TV Guide that advertised the new lineups. There were three stories and even an editorial praising the channel changes in Ms. Paskowski's hometown Journal-News.
Multichannel News' own story Feb. 28 noted how federal mandates sparked these changes. Because of recent federal must-carry rulings, we had to place independent WXTV on channel 41 across the tristate area. This meant that we had to move a minimum of 10 channels because federal must-carry laws required a number of other stations to be resituated.
It was always in Cablevision's long-term plans to make our lineups more uniform and logical throughout the region, and we believe it was much more convenient for our customers to make all contemplated changes to our lineups in a single stroke, with excellent accompanying communications.
Like other cable operators, Cablevision has grown larger by acquiring cable systems from other companies. One legacy of the previously diverse ownership was a bewildering patchwork of channel lineups.
For example, a customer in White Plains, N.Y., could be watching ESPN on channel 41, while close by in Yonkers, N.Y., the same game would be on channel 36. That's the type of chaotic situation Cablevision's new uniform channel lineup has rectified.
While we know change inspires some levels of stress, we expect that grouping channels by areas of interest will-after a very short adjustment period-lead to greater customer satisfaction.
We are hopeful that Ms. Paskowski and her friends in Westchester County, N.Y., will soon be among those satisfied customers.
Craig Watson
Consumer Telecommunications Fulfillment
Cablevision Systems Corp.
Editor's Response:
OK, OK. But why, oh why, is CNN Headline News now off in Siberia on channel 59, when all of the other news channels are clumped together at the head of the lineup pack? The answer, in part: to make room for Cablevision's own pack of Metro Channels.
Armstrong Wants Reg Changes
Cables State Is One of Rapid Change
'MCN' Specs to Change
Cablevision Responds To Fox's Defense Of Negotiations
Dish Responds to NAB Complaint
Cablevision Taps Marginson at Wiz
Vendors Respond to 'Net Slump


text:
Target Reports Holiday Sales
Target Corporation (NYSE: TGT) today announced that comparable sales in the combined November/December period grew 1.4 percent, on top of 5.7 percent growth in the same period last year. Comparable sales growth was driven primarily by traffic, combined with a small increase in average ticket. Comparable digital sales grew 19 percent in the November/December period, driven primarily by the Company's same-day fulfillment services (Order Pick Up, Drive Up and Shipt), which together grew more than 50 percent from the comparable period last year.
Brian Cornell, Chairman and Chief Executive Officer of Target Corporation, said, "We faced challenges throughout November and December in key seasonal merchandise categories and our holiday sales did not meet our expectations. However, because of the durability of our business model, we are maintaining our guidance for our fourth quarter earnings per share. We also remain on track to deliver historically strong full-year results in 2019, including comparable sales growth of more than 3 percent and record-high EPS reflecting mid-teens growth compared with last year.
For the Holiday period specifically, sales results came in below our expectations as we experienced softer-than-expected performance in areas of our business that are critical during the season, including Electronics, Toys and portions of our Home assortment. Because these categories account for a much higher portion of sales during the holidays, they have a larger impact on our overall sales growth as compared to the rest of the year. At the same time, we've seen continued strength and market share gains in Apparel, Beauty, Essentials and Food & Beverage. And in Toys, despite approximately flat comparable sales, we continued to gain share over the holidays, according to data from the NPD group.
more at: https://investors.target.com/news-releases/news-release-details/target-reports-holiday-sales-and-maintains-eps-guidance
Smithsonian Enterprises Launches New Travel Title
Smithsonian Enterprises is set to launch a new print quarterly called Smithsonian Journeys. The travel-themed title will be newsstand-only, but its main strategic purpose is to anchor a broader travel services strategy for the Smithsonian Institution. More than 150,000 copies will be distributed to terminal newsstands, supermarkets and bookstores and the folio will crack 128 pages.
Magazine Circ Continues Downward Spiral
Consumer magazine circulation continued to decline in the second half of 2014, down 2.2 percent, according to data on nearly 400 titles released by the Alliance for Audited Media. Some publishers are taking measures to make things seem better than they really are however. Paid subscriptions declined 1.5 percent overall, but AMI's Fit Pregnancy (up 264 percent) and Time Inc.'s Allrecipes (107 percent) led the way for those that bucked the trend. The entertainment segment had several above-average performers in paid subscriptions as well, with People Stylewatch (30 percent), Star (14 percent) and OK! Weekly (12 percent). Single copy sales plummetted 14.2 percent in the second half of the year, though the supply chain was impacted by the shutdown of Source Interlink Distribution in May. Business titles stood out, with Entrepreneur (up 60 percent), Inc. (37 percent) and Fast Company (36 percent) each posting big gains.
Publishers—like Hearst and NYT—are making human capital investment a priority again (whatsnewinpublishing.com)
After years of shrinking budgets for training and cuts to personal development across the magazine and news media industries, there are signs that companies are making training and education of staff a priority again. Last month, The New York Times announced it had open-sourced its data skills course for reporters, and made it accessible to all. US-based Hearst Magazines is among the vanguard investing in its people and providing opportunities for education and training. Recently, it launched Hearst Data University (HDU), a collection of courses and educational initiatives aimed at supporting its employees' data fluency, in partnership with New Jersey Institute of Technology. The first Hearst Data University session launched April 28, 2019 and was taught by Dr. Jorge Fresneda Fernandez. Click Read More below for additional information.
previous post: Bonnier Corp. Signs New Licensing Partner for Popular Science Magazine
next post: Pearson January Trading Update (Unaudited)


Pedicure Lover | Samplers and Gifts | Spinster Sisters Co.
Our Bath & Body products will please any person who loves perfectly pedicured feet. Each gift set packaged in clear bag.
Sugar Scrub: Sugar, Olea Europaea (Olive) Fruit Oil, Prunus Amygdalus Dulcis (Sweet Almond) Oil, Tocopherol (Vitamin E) Oil, and Essential Oil (EO) or Fragrance Oil (FR) [scent options note if EO or FR is used].


Can be custom ordered to your prefrence. Please allow 6 to 8 weeks for custom orders.
New Daisetta Cordura® Trail saddle has border tooling and stainless hardware with copper flower conchos. Features Cordura® skirts and fenders for lighter weight. Adjustable position flat plate rigging lets you choose which position is best for your horse. Regular width tree in seat size 17″. Black padded leather seat. Dark Brown leather swell, horn, seat jockey and cantle.
All returns and exchanges must be made within 10 business days of the date on your sales receipt. Pre-paid items must be returned or exchanged within 10 days of receipt of product. We do not accept returns on custom leather orders and custom engraving orders. However, if the error is our mistake we are more than happy to work with you to correct it.
Central Kentucky Tack and Leather is home to handcrafted leather products made in the heart of horse country. Our custom tack and equine products are delivered with service that is unmatched in our industry. From our headquarters in Kentucky to customers across the globe, we are here to serve you for all of your equine tack and leather needs.