text:
<?php

/**
 * CController manages a set of actions which deal with the corresponding user requests.
 *
 * Through the actions, CController coordinates the data flow between models and views.
 *
 * When a user requests an action 'XYZ', CController will do one of the following:
 * 1. Method-based action: call method 'actionXYZ' if it exists;
 * 2. Class-based action: create an instance of class 'XYZ' if the class is found in the action class map
 *    (specified via {@link actions()}, and execute the action;
 * 3. Call {@link missingAction()}, which by default will raise a 404 HTTP exception.
 *
 * If the user does not specify an action, CController will run the action specified by
 * {@link defaultAction}, instead.
 *
 * CController may be configured to execute filters before and after running actions.
 * Filters preprocess/postprocess the user request/response and may quit executing actions
 * if needed. They are executed in the order they are specified. If during the execution,
 * any of the filters returns true, the rest filters and the action will no longer get executed.
 *
 * Filters can be individual objects, or methods defined in the controller class.
 * They are specified by overriding {@link filters()} method. The following is an example
 * of the filter specification:
 *

 * array(
 *     'accessControl - login',
 *     'ajaxOnly + search',
 *     array(
 *         'COutputCache + list',
 *         'duration'=>300,
 *     ),
 * )
 *

 * The above example declares three filters: accessControl, ajaxOnly, COutputCache. The first two
 * are method-based filters (defined in CController), which refer to filtering methods in the controller class;
 * while the last refers to a object-based filter whose class is 'system.web.widgets.COutputCache' and
 * the 'duration' property is initialized as 300 (s).
 *
 * For method-based filters, a method named 'filterXYZ($filterChain)' in the controller class
 * will be executed, where 'XYZ' stands for the filter name as specified in {@link filters()}.
 * Note, inside the filter method, you must call $filterChain->run() if the action should
 * be executed. Otherwise, the filtering process would stop at this filter.
 *
 * Filters can be specified so that they are executed only when running certain actions.
 * For method-based filters, this is done by using '+' and '-' operators in the filter specification.
 * The '+' operator means the filter runs only when the specified actions are requested;
 * while the '-' operator means the filter runs only when the requested action is not among those actions.
 * For object-based filters, the '+' and '-' operators are following the class name.
 *
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @version $Id: CController.php 1852 2010-03-02 20:38:47Z qiang.xue $
 * @package system.web
 * @since 1.0
 */
class CController extends CBaseController
{
	/**
	 * Name of the hidden field storing persistent page states.
	 */
	const STATE_INPUT_NAME='YII_PAGE_STATE';

	/**
	 * @var mixed the name of the layout to be applied to this controller's views.
	 * Defaults to null, meaning the {@link CWebApplication::layout application layout}
	 * is used. If it is false, no layout will be applied.
	 * Since version 1.0.3, the {@link CWebModule::layout module layout} will be used
	 * if the controller belongs to a module and this layout property is null.
	 */
	public $layout;
	/**
	 * @var string the name of the default action. Defaults to 'index'.
	 */
	public $defaultAction='index';

	private $_id;
	private $_action;
	private $_pageTitle;
	private $_cachingStack;
	private $_clips;
	private $_dynamicOutput;
	private $_pageStates;
	private $_module;

	/**
	 * @param string id of this controller
	 * @param CWebModule the module that this controller belongs to. This parameter
	 * has been available since version 1.0.3.
	 */
	public function __construct($id,$module=null)
	{
		$this->_id=$id;
		$this->_module=$module;
		$this->attachBehaviors($this->behaviors());
	}

	/**
	 * Initializes the controller.
	 * This method is called by the application before the controller starts to execute.
	 * You may override this method to perform the needed initialization for the controller.
	 * @since 1.0.1
	 */
	public function init()
	{
	}

	/**
	 * Returns the filter configurations.
	 *
	 * By overriding this method, child classes can specify filters to be applied to actions.
	 *
	 * This method returns an array of filter specifications. Each array element specify a single filter.
	 *
	 * For a method-based filter (called inline filter), it is specified as 'FilterName[ +|- Action1, Action2, ...]',
	 * where the '+' ('-') operators describe which actions should be (should not be) applied with the filter.
	 *
	 * For a class-based filter, it is specified as an array like the following:
	 *

	 * array(
	 *     'FilterClass[ +|- Action1, Action2, ...]',
	 *     'name1'=>'value1',
	 *     'name2'=>'value2',
	 *     ...
	 * )
	 *

	 * where the name-value pairs will be used to initialize the properties of the filter.
	 *
	 * Note, in order to inherit filters defined in the parent class, a child class needs to
	 * merge the parent filters with child filters using functions like array_merge().
	 *
	 * @return array a list of filter configurations.
	 * @see CFilter
	 */
	public function filters()
	{
		return array();
	}

	/**
	 * Returns a list of external action classes.
	 * Array keys are action IDs, and array values are the corresponding
	 * action class in dot syntax (e.g. 'edit'=>'application.controllers.article.EditArticle')
	 * or arrays representing the configuration of the actions, such as the following,
	 *

	 * return array(
	 *     'action1'=>'path.to.Action1Class',
	 *     'action2'=>array(
	 *         'class'=>'path.to.Action2Class',
	 *         'property1'=>'value1',
	 *         'property2'=>'value2',
	 *     ),
	 * );
	 *

	 * Derived classes may override this method to declare external actions.
	 *
	 * Note, in order to inherit actions defined in the parent class, a child class needs to
	 * merge the parent actions with child actions using functions like array_merge().
	 *
	 * Since version 1.0.1, you may import actions from an action provider
	 * (such as a widget, see {@link CWidget::actions}), like the following:
	 *

	 * return array(
	 *     ...other actions...
	 *     // import actions declared in ProviderClass::actions()
	 *     // the action IDs will be prefixed with 'pro.'
	 *     'pro.'=>'path.to.ProviderClass',
	 *     // similar as above except that the imported actions are
	 *     // configured with the specified initial property values
	 *     'pro2.'=>array(
	 *         'class'=>'path.to.ProviderClass',
	 *         'action1'=>array(
	 *             'property1'=>'value1',
	 *         ),
	 *         'action2'=>array(
	 *             'property2'=>'value2',
	 *         ),
	 *     ),
	 * )
	 *

	 *
	 * In the above, we differentiate action providers from other action
	 * declarations by the array keys. For action providers, the array keys
	 * must contain a dot. As a result, an action ID 'pro2.action1' will
	 * be resolved as the 'action1' action declared in the 'ProviderClass'.
	 *
	 * @return array list of external action classes
	 * @see createAction
	 */
	public function actions()
	{
		return array();
	}

	/**
	 * Returns a list of behaviors that this controller should behave as.
	 * The return value should be an array of behavior configurations indexed by
	 * behavior names. Each behavior configuration can be either a string specifying
	 * the behavior class or an array of the following structure:
	 *

	 * 'behaviorName'=>array(
	 *     'class'=>'path.to.BehaviorClass',
	 *     'property1'=>'value1',
	 *     'property2'=>'value2',
	 * )
	 *

	 *
	 * Note, the behavior classes must implement {@link IBehavior} or extend from
	 * {@link CBehavior}. Behaviors declared in this method will be attached
	 * to the controller when it is instantiated.
	 *
	 * For more details about behaviors, see {@link CComponent}.
	 * @return array the behavior configurations (behavior name=>behavior configuration)
	 * @since 1.0.6
	 */
	public function behaviors()
	{
		return array();
	}

	/**
	 * Returns the access rules for this controller.
	 * Override this method if you use the {@link filterAccessControl accessControl} filter.
	 * @return array list of access rules. See {@link CAccessControlFilter} for details about rule specification.
	 */
	public function accessRules()
	{
		return array();
	}

	/**
	 * Runs the named action.
	 * Filters specified via {@link filters()} will be applied.
	 * @param string action ID
	 * @throws CHttpException if the action does not exist or the action name is not proper.
	 * @see filters
	 * @see createAction
	 * @see runAction
	 */
	public function run($actionID)
	{
		if(($action=$this->createAction($actionID))!==null)
		{
			if(($parent=$this->getModule())===null)
				$parent=Yii::app();
			if($parent->beforeControllerAction($this,$action))
			{
				$this->runActionWithFilters($action,$this->filters());
				$parent->afterControllerAction($this,$action);
			}
		}
		else
			$this->missingAction($actionID);
	}

	/**
	 * Runs an action with the specified filters.
	 * A filter chain will be created based on the specified filters
	 * and the action will be executed then.
	 * @param CAction the action to be executed.
	 * @param array list of filters to be applied to the action.
	 * @see filters
	 * @see createAction
	 * @see runAction
	 */
	public function runActionWithFilters($action,$filters)
	{
		if(empty($filters))
			$this->runAction($action);
		else
		{
			$priorAction=$this->_action;
			$this->_action=$action;
			CFilterChain::create($this,$action,$filters)->run();
			$this->_action=$priorAction;
		}
	}

	/**
	 * Runs the action after passing through all filters.
	 * This method is invoked by {@link runActionWithFilters} after all possible filters have been executed
	 * and the action starts to run.
	 * @param CAction action to run
	 */
	public function runAction($action)
	{
		$priorAction=$this->_action;
		$this->_action=$action;
		if($this->beforeAction($action))
		{
			$action->run();
			$this->afterAction($action);
		}
		$this->_action=$priorAction;
	}

	/**
	 * Postprocesses the output generated by {@link render()}.
	 * This method is invoked at the end of {@link render()} and {@link renderText()}.
	 * If there are registered client scripts, this method will insert them into the output
	 * at appropriate places. If there are dynamic contents, they will also be inserted.
	 * This method may also save the persistent page states in hidden fields of
	 * stateful forms in the page.
	 * @param string the output generated by the current action
	 * @return string the output that has been processed.
	 */
	public function processOutput($output)
	{
		Yii::app()->getClientScript()->render($output);

		// if using page caching, we should delay dynamic output replacement
		if($this->_dynamicOutput!==null && $this->isCachingStackEmpty())
			$output=$this->processDynamicOutput($output);

		if($this->_pageStates===null)
			$this->_pageStates=$this->loadPageStates();
		if(!empty($this->_pageStates))
			$this->savePageStates($this->_pageStates,$output);

		return $output;
	}

	/**
	 * Postprocesses the dynamic output.
	 * This method is internally used. Do not call this method directly.
	 * @param string output to be processed
	 * @return string the processed output
	 * @since 1.0.4
	 */
	public function processDynamicOutput($output)
	{
		if($this->_dynamicOutput)
		{
			$output=preg_replace_callback('/<###dynamic-(\d+)###>/',array($this,'replaceDynamicOutput'),$output);
			$this->_dynamicOutput=null;
		}
		return $output;
	}

	/**
	 * Replaces the dynamic content placeholders with actual content.
	 * This is a callback function used internally.
	 * @param array matches
	 * @return string the replacement
	 * @see processOutput
	 */
	protected function replaceDynamicOutput($matches)
	{
		return isset($this->_dynamicOutput[$matches[1]]) ? $this->_dynamicOutput[$matches[1]] : $matches[0];
	}

	/**
	 * Creates the action instance based on the action name.
	 * The action can be either an inline action or an object.
	 * The latter is created by looking up the action map specified in {@link actions}.
	 * @param string ID of the action. If empty, the {@link defaultAction default action} will be used.
	 * @return CAction the action instance, null if the action does not exist.
	 * @see actions
	 */
	public function createAction($actionID)
	{
		if($actionID==='')
			$actionID=$this->defaultAction;
		if(method_exists($this,'action'.$actionID) && strcasecmp($actionID,'s')) // we have actions method
			return new CInlineAction($this,$actionID);
		else
			return $this->createActionFromMap($this->actions(),$actionID,$actionID);
	}

	/**
	 * Creates the action instance based on the action map.
	 * This method will check to see if the action ID appears in the given
	 * action map. If so, the corresponding configuration will be used to
	 * create the action instance.
	 * @param array the action map
	 * @param string the action ID that has its prefix stripped off
	 * @param string the originally requested action ID
	 * @param array the action configuration that should be applied on top of the configuration specified in the map
	 * @return CAction the action instance, null if the action does not exist.
	 * @since 1.0.1
	 */
	protected function createActionFromMap($actionMap,$actionID,$requestActionID,$config=array())
	{
		if(($pos=strpos($actionID,'.'))===false && isset($actionMap[$actionID]))
		{
			$baseConfig=is_array($actionMap[$actionID]) ? $actionMap[$actionID] : array('class'=>$actionMap[$actionID]);
			return Yii::createComponent(empty($config)?$baseConfig:array_merge($baseConfig,$config),$this,$requestActionID);
		}
		else if($pos===false)
			return null;

		// the action is defined in a provider
		$prefix=substr($actionID,0,$pos+1);
		if(!isset($actionMap[$prefix]))
			return null;
		$actionID=(string)substr($actionID,$pos+1);

		$provider=$actionMap[$prefix];
		if(is_string($provider))
			$providerType=$provider;
		else if(is_array($provider) && isset($provider['class']))
		{
			$providerType=$provider['class'];
			if(isset($provider[$actionID]))
			{
				if(is_string($provider[$actionID]))
					$config=array_merge(array('class'=>$provider[$actionID]),$config);
				else
					$config=array_merge($provider[$actionID],$config);
			}
		}
		else
			throw new CException(Yii::t('yii','Object configuration must be an array containing a "class" element.'));

		$class=Yii::import($providerType,true);
		$map=call_user_func(array($class,'actions'));

		return $this->createActionFromMap($map,$actionID,$requestActionID,$config);
	}

	/**
	 * Handles the request whose action is not recognized.
	 * This method is invoked when the controller cannot find the requested action.
	 * The default implementation simply throws an exception.
	 * @param string the missing action name
	 * @throws CHttpException whenever this method is invoked
	 */
	public function missingAction($actionID)
	{
		throw new CHttpException(404,Yii::t('yii','The system is unable to find the requested action "{action}".',
			array('{action}'=>$actionID==''?$this->defaultAction:$actionID)));
	}

	/**
	 * @return CAction the action currently being executed, null if no active action.
	 */
	public function getAction()
	{
		return $this->_action;
	}

	/**
	 * @param CAction the action currently being executed.
	 */
	public function setAction($value)
	{
		$this->_action=$value;
	}

	/**
	 * @return string ID of the controller
	 */
	public function getId()
	{
		return $this->_id;
	}

	/**
	 * @return string the controller ID that is prefixed with the module ID (if any).
	 * @since 1.0.3
	 */
	public function getUniqueId()
	{
		return $this->_module ? $this->_module->getId().'/'.$this->_id : $this->_id;
	}

	/**
	 * @return string the route (module ID, controller ID and action ID) of the current request.
	 * @since 1.1.0
	 */
	public function getRoute()
	{
		if(($action=$this->getAction())!==null)
			return $this->getUniqueId().'/'.$action->getId();
		else
			return $this->getUniqueId();
	}

	/**
	 * @return CWebModule the module that this controller belongs to. It returns null
	 * if the controller does not belong to any module
	 * @since 1.0.3
	 */
	public function getModule()
	{
		return $this->_module;
	}

	/**
	 * Returns the directory containing view files for this controller.
	 * The default implementation returns 'protected/views/ControllerID'.
	 * Child classes may override this method to use customized view path.
	 * If the controller belongs to a module (since version 1.0.3), the default view path
	 * is the {@link CWebModule::getViewPath module view path} appended with the controller ID.
	 * @return string the directory containing the view files for this controller. Defaults to 'protected/views/ControllerID'.
	 */
	public function getViewPath()
	{
		if(($module=$this->getModule())===null)
			$module=Yii::app();
		return $module->getViewPath().'/'.$this->getId();
	}

	/**
	 * Looks for the view file according to the given view name.
	 * This method will look for the view under the controller's {@link getViewPath viewPath}.
	 * If the view name starts with '/', the view will be looked for under the application's
	 * {@link CWebApplication::getViewPath viewPath}.
	 * The view script file is named as "ViewName.php". A localized view file
	 * may be returned if internationalization is needed. See {@link CApplication::findLocalizedFile}
	 * for more details.
	 * Since version 1.0.2, the view name can also refer to a path alias
	 * if it contains dot characters.
	 * Since version 1.0.3, if the controller belongs to a module, the view file
	 * will be searched under the {@link CWebModule::getViewPath module view path}.
	 * @param string name of the view (without file extension)
	 * @return string the view file path, false if the view file does not exist
	 * @see CApplication::findLocalizedFile
	 */
	public function getViewFile($viewName)
	{
		if(($theme=Yii::app()->getTheme())!==null && ($viewFile=$theme->getViewFile($this,$viewName))!==false)
			return $viewFile;
		$module=$this->getModule();
		$basePath=$module ? $module->getViewPath() : Yii::app()->getViewPath();
		return $this->resolveViewFile($viewName,$this->getViewPath(),$basePath);
	}

	/**
	 * Looks for the view script file for a layout.
	 * This method will look for the view under the application's {@link CWebApplication::getLayoutPath layoutPath}.
	 * If the view name starts with '/', the view will be looked for under the application's
	 * {@link CWebApplication::getViewPath viewPath}.
	 * If the view name is null, the application's {@link CWebApplication::layout default layout}
	 * will be used. If the view name is false, this method simply returns false.
	 * Since version 1.0.2, the view name can also refer to a path alias
	 * if it contains dot characters.
	 * Since version 1.0.3, if the controller belongs to a module, the view file
	 * will be searched under the {@link CWebModule::getViewPath module layout path},
	 * and if the view name is null, the {@link CWebModule::layout module default layout}
	 * will be used.
	 * @param mixed layout name
	 * @return string the view file for the layout. False if the view file cannot be found
	 */
	public function getLayoutFile($layoutName)
	{
		if($layoutName===false)
			return false;
		if(($theme=Yii::app()->getTheme())!==null && ($layoutFile=$theme->getLayoutFile($this,$layoutName))!==false)
			return $layoutFile;

		if(empty($layoutName))
		{
			$module=$this->getModule();
			while($module!==null)
			{
				if($module->layout===false)
					return false;
				if(!empty($module->layout))
					break;
				$module=$module->getParentModule();
			}
			if($module===null)
				$module=Yii::app();
			return $this->resolveViewFile($module->layout,$module->getLayoutPath(),$module->getViewPath());
		}
		else
		{
			if(($module=$this->getModule())===null)
				$module=Yii::app();
			return $this->resolveViewFile($layoutName,$module->getLayoutPath(),$module->getViewPath());
		}
	}

	/**
	 * Finds a view file based on its name.
	 * The view name can be in one of the following formats:
	 *

	 *
absolute view: the view name starts with a slash '/'.

	 *
aliased view: the view name contains dots and refers to a path alias.
	 * The view file is determined by calling {@link YiiBase::getPathOfAlias()}.

	 *
relative view: otherwise.

	 *

	 * For absolute view and relative view, the corresponding view file is a PHP file
	 * whose name is the same as the view name. The file is located under a specified directory.
	 * This method will call {@link CApplication::findLocalizedFile} to search for a localized file, if any.
	 * @param string the view name
	 * @param string the directory that is used to search for a relative view name
	 * @param string the directory that is used to search for an absolute view name
	 * @return mixed the view file path. False if the view file does not exist.
	 * @since 1.0.3
	 */
	public function resolveViewFile($viewName,$viewPath,$basePath)
	{
		if(empty($viewName))
			return false;

		if(($renderer=Yii::app()->getViewRenderer())!==null)
			$extension=$renderer->fileExtension;
		else
			$extension='.php';
		if($viewName[0]==='/')
			$viewFile=$basePath.$viewName.$extension;
		else if(strpos($viewName,'.'))
			$viewFile=Yii::getPathOfAlias($viewName).$extension;
		else
			$viewFile=$viewPath.DIRECTORY_SEPARATOR.$viewName.$extension;
		return is_file($viewFile) ? Yii::app()->findLocalizedFile($viewFile) : false;
	}

	/**
	 * Returns the list of clips.
	 * A clip is a named piece of rendering result that can be
	 * inserted at different places.
	 * @return CMap the list of clips
	 * @see CClipWidget
	 */
	public function getClips()
	{
		if($this->_clips!==null)
			return $this->_clips;
		else
			return $this->_clips=new CMap;
	}

	/**
	 * Processes the request using another controller action.
	 * This is like {@link redirect}, but the user browser's URL remains unchanged.
	 * In most cases, you should call {@link redirect} instead of this method.
	 * @param string the route of the new controller action. This can be an action ID, or a complete route
	 * with module ID (optional in the current module), controller ID and action ID. If the former, the action is assumed
	 * to be located within the current controller.
	 * @param boolean whether to end the application after this call. Defaults to true.
	 * @since 1.1.0
	 */
	public function forward($route,$exit=true)
	{
		if(strpos($route,'/')===false)
			$this->run($route);
		else
		{
			if($route[0]!=='/' && ($module=$this->getModule())!==null)
				$route=$module->getId().'/'.$route;
			Yii::app()->runController($route);
		}
		if($exit)
			Yii::app()->end();
	}

	/**
	 * Renders a view with a layout.
	 *
	 * This method first calls {@link renderPartial} to render the view (called content view).
	 * It then renders the layout view which may embed the content view at appropriate place.
	 * In the layout view, the content view rendering result can be accessed via variable
	 * $content. At the end, it calls {@link processOutput} to insert scripts
	 * and dynamic contents if they are available.
	 *
	 * By default, the layout view script is "protected/views/layouts/main.php".
	 * This may be customized by changing {@link layout}.
	 *
	 * @param string name of the view to be rendered. See {@link getViewFile} for details
	 * about how the view script is resolved.
	 * @param array data to be extracted into PHP variables and made available to the view script
	 * @param boolean whether the rendering result should be returned instead of being displayed to end users.
	 * @return string the rendering result. Null if the rendering result is not required.
	 * @see renderPartial
	 * @see getLayoutFile
	 */
	public function render($view,$data=null,$return=false)
	{
		$output=$this->renderPartial($view,$data,true);
		if(($layoutFile=$this->getLayoutFile($this->layout))!==false)
			$output=$this->renderFile($layoutFile,array('content'=>$output),true);

		$output=$this->processOutput($output);

		if($return)
			return $output;
		else
			echo $output;
	}

	/**
	 * Renders a static text string.
	 * The string will be inserted in the current controller layout and returned back.
	 * @param string the static text string
	 * @param boolean whether the rendering result should be returned instead of being displayed to end users.
	 * @return string the rendering result. Null if the rendering result is not required.
	 * @see getLayoutFile
	 */
	public function renderText($text,$return=false)
	{
		if(($layoutFile=$this->getLayoutFile($this->layout))!==false)
			$text=$this->renderFile($layoutFile,array('content'=>$text),true);

		$text=$this->processOutput($text);

		if($return)
			return $text;
		else
			echo $text;
	}

	/**
	 * Renders a view.
	 *
	 * The named view refers to a PHP script (resolved via {@link getViewFile})
	 * that is included by this method. If $data is an associative array,
	 * it will be extracted as PHP variables and made available to the script.
	 *
	 * This method differs from {@link render()} in that it does not
	 * apply a layout to the rendered result. It is thus mostly used
	 * in rendering a partial view, or an AJAX response.
	 *
	 * @param string name of the view to be rendered. See {@link getViewFile} for details
	 * about how the view script is resolved.
	 * @param array data to be extracted into PHP variables and made available to the view script
	 * @param boolean whether the rendering result should be returned instead of being displayed to end users
	 * @param boolean whether the rendering result should be postprocessed using {@link processOutput}.
	 * This parameter should be set true if renderPartial is the only method used to generate
	 * the output when handling a user request.
	 * @return string the rendering result. Null if the rendering result is not required.
	 * @throws CException if the view does not exist
	 * @see getViewFile
	 * @see processOutput
	 * @see render
	 */
	public function renderPartial($view,$data=null,$return=false,$processOutput=false)
	{
		if(($viewFile=$this->getViewFile($view))!==false)
		{
			$output=$this->renderFile($viewFile,$data,true);
			if($processOutput)
				$output=$this->processOutput($output);
			if($return)
				return $output;
			else
				echo $output;
		}
		else
			throw new CException(Yii::t('yii','{controller} cannot find the requested view "{view}".',
				array('{controller}'=>get_class($this), '{view}'=>$view)));
	}

	/**
	 * Renders dynamic content returned by the specified callback.
	 * This method is used together with {@link COutputCache}. Dynamic contents
	 * will always show as their latest state even if the content surrounding them is being cached.
	 * This is especially useful when caching pages that are mostly static but contain some small
	 * dynamic regions, such as username or current time.
	 * We can use this method to render these dynamic regions to ensure they are always up-to-date.
	 *
	 * The first parameter to this method should be a valid PHP callback, while the rest parameters
	 * will be passed to the callback.
	 *
	 * Note, the callback and its parameter values will be serialized and saved in cache.
	 * Make sure they are serializable.
	 *
	 * @param callback a PHP callback which returns the needed dynamic content.
	 * When the callback is specified as a string, it will be first assumed to be a method of the current
	 * controller class. If the method does not exist, it is assumed to be a global PHP function.
	 * Note, the callback should return the dynamic content instead of echoing it.
	 */
	public function renderDynamic($callback)
	{
		$n=count($this->_dynamicOutput);
		echo "<###dynamic-$n###>";
		$params=func_get_args();
		array_shift($params);
		$this->renderDynamicInternal($callback,$params);
	}

	/**
	 * This method is internally used.
	 * @param callback a PHP callback which returns the needed dynamic content.
	 * @param array parameters passed to the PHP callback
	 * @see renderDynamic
	 */
	public function renderDynamicInternal($callback,$params)
	{
		$this->recordCachingAction('','renderDynamicInternal',array($callback,$params));
		if(is_string($callback) && method_exists($this,$callback))
			$callback=array($this,$callback);
		$this->_dynamicOutput[]=call_user_func_array($callback,$params);
	}

	/**
	 * Creates a relative URL for the specified action defined in this controller.
	 * @param string the URL route. This should be in the format of 'ControllerID/ActionID'.
	 * If the ControllerID is not present, the current controller ID will be prefixed to the route.
	 * If the route is empty, it is assumed to be the current action.
	 * Since version 1.0.3, if the controller belongs to a module, the {@link CWebModule::getId module ID}
	 * will be prefixed to the route. (If you do not want the module ID prefix, the route should start with a slash '/'.)
	 * @param array additional GET parameters (name=>value). Both the name and value will be URL-encoded.
	 * If the name is '#', the corresponding value will be treated as an anchor
	 * and will be appended at the end of the URL. This anchor feature has been available since version 1.0.1.
	 * @param string the token separating name-value pairs in the URL.
	 * @return string the constructed URL
	 */
	public function createUrl($route,$params=array(),$ampersand='&')
	{
		if($route==='')
			$route=$this->getId().'/'.$this->getAction()->getId();
		else if(strpos($route,'/')===false)
			$route=$this->getId().'/'.$route;
		if($route[0]!=='/' && ($module=$this->getModule())!==null)
			$route=$module->getId().'/'.$route;
		return Yii::app()->createUrl(trim($route,'/'),$params,$ampersand);
	}

	/**
	 * Creates an absolute URL for the specified action defined in this controller.
	 * @param string the URL route. This should be in the format of 'ControllerID/ActionID'.
	 * If the ControllerPath is not present, the current controller ID will be prefixed to the route.
	 * If the route is empty, it is assumed to be the current action.
	 * @param array additional GET parameters (name=>value). Both the name and value will be URL-encoded.
	 * @param string schema to use (e.g. http, https). If empty, the schema used for the current request will be used.
	 * @param string the token separating name-value pairs in the URL.
	 * @return string the constructed URL
	 */
	public function createAbsoluteUrl($route,$params=array(),$schema='',$ampersand='&')
	{
		return Yii::app()->getRequest()->getHostInfo($schema).$this->createUrl($route,$params,$ampersand);
	}

	/**
	 * @return string the page title. Defaults to the controller name and the action name.
	 */
	public function getPageTitle()
	{
		if($this->_pageTitle!==null)
			return $this->_pageTitle;
		else
		{
			$name=ucfirst(basename($this->getId()));
			if($this->getAction()!==null && strcasecmp($this->getAction()->getId(),$this->defaultAction))
				return $this->_pageTitle=Yii::app()->name.' - '.ucfirst($this->getAction()->getId()).' '.$name;
			else
				return $this->_pageTitle=Yii::app()->name.' - '.$name;
		}
	}

	/**
	 * @param string the page title.
	 */
	public function setPageTitle($value)
	{
		$this->_pageTitle=$value;
	}

	/**
	 * Redirects the browser to the specified URL or route (controller/action).
	 * @param mixed the URL to be redirected to. If the parameter is an array,
	 * the first element must be a route to a controller action and the rest
	 * are GET parameters in name-value pairs.
	 * @param boolean whether to terminate the current application after calling this method
	 * @param integer the HTTP status code. Defaults to 302. See {@link http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html}
	 * for details about HTTP status code. This parameter has been available since version 1.0.4.
	 */
	public function redirect($url,$terminate=true,$statusCode=302)
	{
		if(is_array($url))
		{
			$route=isset($url[0]) ? $url[0] : '';
			$url=$this->createUrl($route,array_splice($url,1));
		}
		Yii::app()->getRequest()->redirect($url,$terminate,$statusCode);
	}

	/**
	 * Refreshes the current page.
	 * The effect of this method call is the same as user pressing the
	 * refresh button on the browser (without post data).
	 * @param boolean whether to terminate the current application after calling this method
	 * @param string the anchor that should be appended to the redirection URL.
	 * Defaults to empty. Make sure the anchor starts with '#' if you want to specify it.
	 * The parameter has been available since version 1.0.7.
	 **/
	public function refresh($terminate=true,$anchor='')
	{
		$this->redirect(Yii::app()->getRequest()->getUrl().$anchor,$terminate);
	}

	/**
	 * Records a method call when an output cache is in effect.
	 * When the content is served from the output cache, the recorded
	 * method will be re-invoked.
	 * @param string a property name of the controller. It refers to an object
	 * whose method is being called. If empty it means the controller itself.
	 * @param string the method name
	 * @param array parameters passed to the method
	 * @see COutputCache
	 */
	public function recordCachingAction($context,$method,$params)
	{
		if($this->_cachingStack) // record only when there is an active output cache
		{
			foreach($this->_cachingStack as $cache)
				$cache->recordAction($context,$method,$params);
		}
	}

	/**
	 * @param boolean whether to create a stack if it does not exist yet. Defaults to true.
	 * @return CStack stack of {@link COutputCache} objects
	 */
	public function getCachingStack($createIfNull=true)
	{
		if(!$this->_cachingStack)
			$this->_cachingStack=new CStack;
		return $this->_cachingStack;
	}

	/**
	 * @return whether the caching stack is empty. If not empty, it means currently there are
	 * some output cache in effect. Note, the return result of this method may change when it is
	 * called in different output regions, depending on the partition of output caches.
	 * @since 1.0.5
	 */
	public function isCachingStackEmpty()
	{
		return $this->_cachingStack===null || !$this->_cachingStack->getCount();
	}

	/**
	 * This method is invoked right before an action is to be executed (after all possible filters.)
	 * You may override this method to do last-minute preparation for the action.
	 * @param CAction the action to be executed.
	 * @return boolean whether the action should be executed.
	 */
	protected function beforeAction($action)
	{
		return true;
	}

	/**
	 * This method is invoked right after an action is executed.
	 * You may override this method to do some postprocessing for the action.
	 * @param CAction the action just executed.
	 */
	protected function afterAction($action)
	{
	}

	/**
	 * The filter method for 'postOnly' filter.
	 * This filter reports an error if the applied action is receiving a non-POST request.
	 * @param CFilterChain the filter chain that the filter is on.
	 * @throws CHttpException if the current request is not a POST request
	 */
	public function filterPostOnly($filterChain)
	{
		if(Yii::app()->getRequest()->getIsPostRequest())
			$filterChain->run();
		else
			throw new CHttpException(400,Yii::t('yii','Your request is not valid.'));
	}

	/**
	 * The filter method for 'ajaxOnly' filter.
	 * This filter reports an error if the applied action is receiving a non-AJAX request.
	 * @param CFilterChain the filter chain that the filter is on.
	 * @throws CHttpException if the current request is not an AJAX request.
	 */
	public function filterAjaxOnly($filterChain)
	{
		if(Yii::app()->getRequest()->getIsAjaxRequest())
			$filterChain->run();
		else
			throw new CHttpException(400,Yii::t('yii','Your request is not valid.'));
	}

	/**
	 * The filter method for 'accessControl' filter.
	 * This filter is a wrapper of {@link CAccessControlFilter}.
	 * To use this filter, you must override {@link accessRules} method.
	 * @param CFilterChain the filter chain that the filter is on.
	 */
	public function filterAccessControl($filterChain)
	{
		$filter=new CAccessControlFilter;
		$filter->setRules($this->accessRules());
		$filter->filter($filterChain);
	}

	/**
	 * Generates pagination information.
	 * This method can be used to generate pagination information given item count
	 * and page size. The pagination information can then be passed to {@link CBasePager pagers}
	 * for corresponding rendering.
	 *
	 * Note: this method has been deprecated since version 1.0.1.
	 * You should directly use "new CPagination" to create a pagination object.
	 *
	 * @param integer the total item count
	 * @param integer the page size. See {@link CPagination} for default value.
	 * @param string the name of the GET variable storing the current page index. See {@link CPagination} for default value.
	 * @return CPagination the pagination information
	 */
	public function paginate($itemCount,$pageSize=null,$pageVar=null)
	{
		$pages=new CPagination($itemCount);
		if($pageSize!==null)
			$pages->pageSize=$pageSize;
		if($pageVar!==null)
			$pages->pageVar=$pageVar;
		return $pages;
	}

	/**
	 * Returns a persistent page state value.
	 * A page state is a variable that is persistent across POST requests of the same page.
	 * In order to use persistent page states, the form(s) must be stateful
	 * which are generated using {@link CHtml::statefulForm}.
	 * @param string the state name
	 * @param mixed the value to be returned if the named state is not found
	 * @return mixed the page state value
	 * @see setPageState
	 * @see CHtml::statefulForm
	 */
	public function getPageState($name,$defaultValue=null)
	{
		if($this->_pageStates===null)
			$this->_pageStates=$this->loadPageStates();
		return isset($this->_pageStates[$name])?$this->_pageStates[$name]:$defaultValue;
	}

	/**
	 * Saves a persistent page state value.
	 * A page state is a variable that is persistent across POST requests of the same page.
	 * In order to use persistent page states, the form(s) must be stateful
	 * which are generated using {@link CHtml::statefulForm}.
	 * @param string the state name
	 * @param mixed the page state value
	 * @param mixed the default page state value. If this is the same as
	 * the given value, the state will be removed from persistent storage.
	 * @see getPageState
	 * @see CHtml::statefulForm
	 */
	public function setPageState($name,$value,$defaultValue=null)
	{
		if($this->_pageStates===null)
			$this->_pageStates=$this->loadPageStates();
		if($value===$defaultValue)
			unset($this->_pageStates[$name]);
		else
			$this->_pageStates[$name]=$value;

		$params=func_get_args();
		$this->recordCachingAction('','setPageState',$params);
	}

	/**
	 * Removes all page states.
	 */
	public function clearPageStates()
	{
		$this->_pageStates=array();
	}

	/**
	 * Loads page states from a hidden input.
	 * @return array the loaded page states
	 */
	protected function loadPageStates()
	{
		if(!empty($_POST[self::STATE_INPUT_NAME]))
		{
			if(($data=base64_decode($_POST[self::STATE_INPUT_NAME]))!==false)
			{
				if(extension_loaded('zlib'))
					$data=@gzuncompress($data);
				if(($data=Yii::app()->getSecurityManager()->validateData($data))!==false)
					return unserialize($data);
			}
		}
		return array();
	}

	/**
	 * Saves page states as a base64 string.
	 * @param array the states to be saved.
	 * @param string the output to be modified. Note, this is passed by reference.
	 */
	protected function savePageStates($states,&$output)
	{
		$data=Yii::app()->getSecurityManager()->hashData(serialize($states));
		if(extension_loaded('zlib'))
			$data=gzcompress($data);
		$value=base64_encode($data);
		$output=str_replace(CHtml::pageStateField(''),CHtml::pageStateField($value),$output);
	}
}


Pumping furiously, engineers of the steamer Tahiti kept their ship afloat for two and a half days after a broken propeller shaft pierced her hull.
RMS Tahiti was a twin-screw steamship of 4155 net tons, built on the Clyde in 1904 and purchased in 1911 by the Union Steamship Company of New Zealand.
Fitted with high-power wireless equipment early in her career, she set records for long-distance communication.
RMS Tahiti sank on 17 August 1930, west of Rarotonga, while on a passage from Wellington to San Francisco.
All of the 149 crew and 103 passengers were rescued, thanks to an SOS call that brought two ships to her aid.
At 4.30 a.m. on the 15th August (western time), she being approximately 480 miles south-west from Rarotonga (latitude 20° 43′ south, longitude 166° 16′ west), violent crashing noises were heard from the direction of the starboard main shaft tunnel, with very heavy vibration of the ship, followed by violent racing of the starboard engine.
The second and fifth engineers, who were on duty in the engine room, hastily shut off steam, the engine stopped abruptly, and the second engineer ran through the bulk-head door and along the starboard tunnel to locate the cause of the violence. The length of the tunnel is 100 feet, and the second engineer covered just over half the distance when he was met by a low wall of water that was rushing towards him. He could see to the far end of the tunnel and in the one quick look that he was able to give he saw that a rush of water was pouring across and upwards from the starboard side of the ship to the port side, the flow covering in area the whole end of the tunnel from the floor to the ceiling.
Though from long custom called a tunnel, the place in question has the appearance of a lower hold. It is 8 feet in height and extends from side to side of the ship, so that both port and starboard tail shafts are, in this region, covered by the one tunnel.
The second engineer raced back to the engine room to get the door in the bulk-head closed, the onward rush of water keeping pace with him so that before the door was closed water was pouring through it into the engine room.
Word was at once sent to the master, to the chief engineer, and to the officer on the bridge. Officers and all hands were called, all pumps were started, hand-pumps were rigged and manned, and wireless messages announcing the danger were sent out.
Some of the officers of RMS Tahiti at the time of her sinking.
L-R Top: A Toten (Master), A Thomson (2nd Engineer), E Denby (3rd Engineer).
Bottom: F Davidson (Chief Wireless Operator), R Patchett (2nd Wireless Operator), F Ferguson (Purser).
Through pumping, and bailing with 44-gallon barrels, the ship was kept afloat for two and half days.
At 10.10 p.m. on the second night (the 16th) the Norwegian steamer Penybryn, which has responded to the Tahiti's wireless S.O.S. calls, and had picked up her position from the distress rockets sent up, arrived and stood by throughout the night with her flood lights thrown over the Tahiti, and her crew ready to man their boats to go, if needed, to the assistance of those on the Tahiti.
At 9.30 a.m. on the 17th the chief engineer reported that conditions were critical but that he hoped to be able to control the water for about an hour longer, and orders were then given by the master for the passengers to abandon the ship. Within 13 minutes all the passengers were got into the boats and away from the ship, and they were shortly afterwards picked up by the American steamer Ventura which had also responded to the S.O.S. calls and had been rapidly approaching, and had sent word that she was ready to take care of all passengers and crew. All the other Tahiti boats were manned by the Tahiti's crew and brought alongside to save the first class mails and the luggage. From then till the early afternoon the fatigued crew, assisted by one of the Penybryn boats, carried out this work.
At 1.35 p.m. the vessel was settling rapidly, the engineers' position below became too dangerous to remain any longer, a final order was issued for remainder of crew to abandon the ship and after master and chief engineer had personally searched the ship to see that no one was left behind, the last boat containing the bo's'w'n, carpenter, wireless operator, the engineers, the mate and the second mate and the master, abandoned the ship.
Passengers and crew from RMS Tahiti reach the Matson liner SS Ventura. The Norwegian freighter Penybryn is in the distance.
The Norwegian freighter Penybryn was the first vessel to reach RMS Tahiti after picking up the SOS call.


Fast Delivery Time: (1-3 business days).
Unlock Telenor Sweden iPhone (Clean).
Works on ANY iOS version & baseband.
The Unlock iPhone from Telenor Sweden to use with different SIM cards can now be achieved through a 100% safe and secure method of unlocking. This service will be guaranteed to remove the network lock and unlock Telenor Sweden iPhone so that it can be used with other SIM cards from across the globe.
Getting the unlock is really simple; just select your phone manufacturer on the iPhone and enter your iPhone model. Once that is done, select the network your iPhone is locked to and input the IMEI number.
In case you don't know the IMEI number don't worry, getting a hold of it is really simple. All you need to do is press *#06# on the dial pad or go to Settings -> General -> About from your device. What you will see is that the IMEI number will be listed at the bottom of the screen as you scroll down. The IMEI number that appears can be either 15 or 17 digits long, but only the first 15 are important when placing your order.
Once you are done, just click on the unlock now button to check out the availability and price of the unlock service. Review the order details to make sure that nothing is amiss. Once that is done, just fill out the other details and make the payment. After the order has been placed, we will send you an email with the unlock confirmation once the order has been completed.
In case of any issues or uncertainties don't hesitate to use our iPhone Network Check Service. In case you feel that your iPhone has been blacklisted/blocked (not reported as stolen or lost) then just use our IMEI Blacklist Check Service. Doing this can save a lot of hassle later on in the process.
Install the latest version of iTunes (for older devices – new devices can be activated via WiFi).
Ensure your iPhone is updated to the latest version.
Connect the phone to iTunes using a non accepted SIM.
Let iTunes detect your iPhone.
Disconnect the phone and reconnect it after about 10 seconds.
The iPhone from Telenor Sweden should now be unlocked.
Please keep in mind that this is a lifetime iPhone unlock solution. Your IMEI number and its status is registered as unlocked in the Apple database and your iPhone will remain so even after the latest firmware updates.
It is easy to switch between various SIM cards in the same phone.
The resell value of the device increases.
A local SIM can be used while travelling to save on roaming fees.
There is no need to run complicated software or jailbreaking required.
Unlocking the iPhone from your own couch.
No risk of damage to the device.
No technical skill or experience required.
The iPhone will remain permanently unlocked.
100% guarantee that it will unlock without voiding the warranty.
What we have here is a frontline online site which specializes in providing mobile phone unlocking services, and can unlock pretty much all major phones from different network service providers. We bring more than 4 years of experience in the unlocking industry to the table and have earned a lot of trust through our dedicated customer support and care. Along with much faster processing we also happen to offer completely fool proof and secure methods to unlock your device with the lowest prices.
Contact us if you need any help or more information about this service.


text:
The Bahamas Fed Cup team represents the Bahamas in Fed Cup tennis competition and are governed by the Bahamas Lawn Tennis Association.

History
The Bahamas competed in its first Fed Cup in 1990.  Their best result was finishing third in their Group I pool in 2002.

See also
Fed Cup
Bahamas Davis Cup team

External links

Billie Jean King Cup teams
Fed Cup
Fed Cup

redpajama_set_name: RedPajamaWikipedia


text:
Win A Signed Sam Photo!
Your chance to grab a great prize.
U's loanee goalkeeper Sam Walker converted his move to a permanent one on Monday, to much acclaim from the club's supporters.
The big shot stopper has become a big fans' favourite during his time at the Weston Homes Community Stadium to date, and he joined the U's on an eighteen month deal from Chelsea this week.
In our latest competition, you could win a signed and mounted A3 photo of Sam in action for the U's!
All you need to do is register an account on our www.coluphotos.com website before 5pm on Friday.
We will pick one of the accounts on the site to be the winner of a print and we'll get Sam to present it to you at an upcoming home game!

redpajama_set_name: RedPajamaCommonCrawl


text:
One LOW monthly fee secures unlimited featured releases for ONE YEAR - Click HERE to Find Out More.
South African Press Releases
Submission How To Video
PR Authors
South African Press Code of Professional Practice
Featured – Paid For
Write Like a Journalist
Biography Article
Court Civil Action
Court Verdict
News Conference
You are here: Home / Archives for Sports
Top Mountain Biker Theo Erlangsen Drops New Video Clip
(MyPR.co.za) January 16, 2020 By // by Craig Jarvis Filed Under: Featured, Sports
Top Mountain Biker Theo Erlangsen Drops New Video Clip Would you rather… Race on the very limit of your capabilities striving for perfection whilst going faster than ever before? Or, fly higher and be in the air for longer than you ever could have imagined possible without an engine, off the biggest monster jump you've ever seen? Well, how about both in the space of two weeks? Delve into the life of Cape Town MTB rider Theo Erlangsen as Monster Energy follow him through the Les Gets World Cup DH race week and Loosefest XL in Belgium. Get a feel for how a young, pretty self-supported pro mountain biker gets through such intense times and always with a smile on his face. If anyone can tell a story, it's Theo! Keep up with Theo on his Insta Let's not forget that DarkFEST is looming, and Theo will be playing a big part in the carnage. Video: Top Mountain Biker Theo Erlangsen Drops New Video Clip https://youtu.be/CSwRFevs5e4 More Info on Top Mountain Biker Theo Erlangsen Drops New Video Clip here: https://www.monsterenergy.com/ Twitter: Facebook: CLICK HERE to submit your press release to MyPR.co.za. …
Pages: Page 1 Page 2
Tagged With: Cape Town, Durban, Johannesburg, Plettenberg Bay, Port Elizabeth, Pretoria, South Africa
MTB Rider Extraordinaire Brendan Fairclough Releases new Video Series BRENDAN FAIRCLOUGH is back with a highly anticipated new series, following the World Cup racer and Freeride connoisseur, getting fast and dangerous in 'A Dog's Life.' Following on from the huge success of DEATHGRIP, the new series explores the fun and stylish, zero-limits riding of Brendog and his crew. Jump on board and travel the world to some of the most unique and coolest riding locations the planet has to offer, from the French Alps to the South African wilderness. Season 1 features 4 x episodes. The first episode; MADEIRA, explores the rugged and steep Volcanic mountains with breath-taking sunrise sessions, high-octane riding and the classic travel misadventures that accompany any good MTB filming trip. Get ready to drop into fully custom-built courses, featuring high-speed corners, stylish jump & rhythm sections and the kind of riding that makes you want to get out there and ride your bike! Taking the viewer from start to finish, every step of the way; the highs and lows, from scouting a venue to filming the closing banger. "Since DEATHGRIP, I've been frothing to get out filming again. Going to the wildest locations with the best bike riders on the planet to film the ultimate sections is a dream come true. I feel so lucky to be doing this with my life!" -Brendog. Keep an eye glued to @Brendog1 for all the updates on the following episodes and behind-the-scenes action from the whole series. Video: MTB Rider Extraordinaire Brendan Fairclough Releases new Video Series https://youtu.be/XN9YbhQ6v4o More Info on MTB Rider Extraordinaire Brendan Fairclough Releases new Video Series here: https://www.monsterenergy.com/ Twitter: Facebook: CLICK HERE to submit your press release to MyPR.co.za. …
DarkFEST 2020 Returns To Stellenbosch
DarkFEST 2020 is officially on! The hallowed ground is set to be broken this week, where the world famous freeride course will be carved out of the mountains of the Helsend Dirt compound in Stellenbosch, South Africa. From 3-8th February, the biggest names in freeride MTB will be gearing up to ride the biggest dirt jumps in the world! The legend of DarkFEST began as a video clip filmed in the UK way back in 2014 by Sam Reynolds and friends with the Pure Darkness series racking up millions of views and becoming a runaway success. Celebrating 4 years of being a renowned FEST series event, the incredible journey from the hills of Surrey to the mountains of South Africa, is now live on Sam's youtube here! Sam is especially hyped for the 2020 event. "This year will be a special one for me because of my injury testing the jumps in 2019, forcing me to watch from the side-line, so the anticipation is even higher than usual," reckoned Sam. "It has only made me more motivated to get out there and build some beasts after waiting all year!" With the help of his expert build team of Clemens Kaudela and Nico Vink, the course will start taking shape in the next month. "We will be improving and extending the already mental course with extra attention on the last features. We'll make the last jump even bigger and make another feature after as well, but you'll have to tune in to the build videos for updates!" The rider list includes some legendary DarkFEST veterans as well as some young guns to make the most rounded and awesome rider line up of any event ever seen- check the full line-up here! "I'm so excited for the 4th edition of Darkfest," reckons Reynolds." I can't wait to continue the wild experiment that tests us all to see how big we can go!" Stay tuned to #MonsterEnergy #DarkFEST and #FESTseries for all the updates. Video: DarkFEST 2020 Returns To Stellenbosch More Info on DarkFEST 2020 Returns To Stellenbosch here: Twitter: Facebook: CLICK …
The Hunt is on With KTM Durban!
(MyPR.co.za) January 13, 2020 By // by Guest PR Filed Under: Sports
The KTM DURBAN outlet, situated at Shop 21 in the Park Boulevard Shopping Centre, is inviting experienced dual sport riders from all over the country for a weekend adventure to Zingela Lodge situated within the battlefields of Weenen on February 22 & 23. This event is not just about bringing like minded people together for a fun riding weekend, but also incorporates a social element. The routes consist of various difficulties and cater for riders of certain styles and experience. On a scale of green, orange, red, black – this ride rates as a "dark green", heading into orange. It is a pillion friendly route, but properly best suited to riders who have a little more experience riding off road. Be sure to mark the date on your social calendar as this event is not to be missed! For more information regarding costs & registering, either email info@ktmdbn.co.za or call 031-035 0090 during office hours. CLICK HERE to submit your press release to MyPR.co.za. …
Tagged With: Durban
Inexperienced Madibaz keep A section spot in USSA tennis
(MyPR.co.za) December 12, 2019 By // by Guest PR Filed Under: Sports
With three players chosen for the Cucsa squad and a sixth-place finish in the A section, the Madibaz Tennis Club returned from the University Sport South Africa tournament satisfied with the outcome. The tournament took place in Stellenbosch last week and was won for the 12th year in a row by University of Free State. Comprising players from the Port Elizabeth and George campuses, the Nelson Mandela University outfit retained their spot in the A section after earning promotion last year. In addition, Stef van Heerden, Jewlin Jonkers and Sisipho Ndlabhu were chosen for the Cucsa (Confederation of Universities and College Sport Association) squad. Madibaz coach Hennie de Klerk said the trio would receive invites to training sessions and tournaments next year. "Following these events final selection will be done for the team to attend the Cucsa tournament, which will be held next year in Lesotho," he said. "Student-athletes will also have an eye on earning selection for the World Student Games in 2021, with the Summer Universiade being held in China from August 8 to 19 that year." Reflecting on the week at Coetzenburg in Stellenbosch, De Klerk said 18 teams of six male and six female players competed in the tournament, divided into A and B sections. "After earning promotion at last year's week in Bloemfontein, we finished in sixth position in the A section out of eight teams," he added. "Bearing in mind that our No 1 male and female players were not available due to injury, this was a commendable effort by the squad. "It means we have retained our spot in the A section for next year, which is important as we have been asked to host the week in 2021." Next year's tournament will be played in Potchefstroom. Given that they fielded a relatively inexperienced team, De Klerk said the players had performed extremely well throughout the week. "The team spirit and general behaviour was of the highest standard and I believe we can look …
Tagged With: Port Elizabeth
Madibaz women take bronze at USSA water polo week
The Madibaz women's water polo team claimed the bronze medal for the second successive year when they competed in the University Sport South Africa tournament in Stellenbosch late last month. The Nelson Mandela University outfit defeated UP-Tuks in the third-place playoff and they showed they were not far off the top teams, UCT and Stellenbosch, in the pool matches. While they were hoping to go one better this year, Madibaz Sport water polo manager Melinda Goosen said the competition was so intense at the week that winning a medal was "a huge achievement". UCT and Maties have dominated varsity water polo and they again contested the final, which was won by Maties. Goosen said there had been pressure on all the teams during the week as there were no semifinal playoffs. "It was a round-robin format in the pool matches and then you went straight to playoff matches to decide the final positions," she said. "With no semifinals, you really had to bring your 'A' game to the pool stages as you did not have a second chance in a semi to make the final." As water polo has slowly gained traction at Nelson Mandela University, she said they felt they were capable of producing good results. "Unfortunately, we drew the tough UCT side in the first match of the tournament. We didn't play our best game and lost by one goal. "This made things a lot harder for us to reach the final as we had to win all our remaining matches, including against the always-strong Maties team. "We dominated all our other matches and then faced the Maties first team in the last pool match. "We have never beaten a Maties side and have had bad losses, but the girls went out flying and were leading after the second chukka. "However, we could not finish off the game and they edged us in the last minutes of the match as we lost by two goals." While producing an all-round effort, Goosen said goalkeeper Meghan Maartens "was definitely a standout player from our team". "She …
December cycle & lunch at Insingizi
Suitable for families of all fitness levels, iNsingizi Lodge and Spa invites cyclists, fun-riders and those looking for a unique end of year activity to join them for a 20km or 40km ride, through the rolling hills, deep valleys and farmlands of Mid-Illovo followed by a two-course lunch on Sunday, 15 December. Tickets for the ride and lunch are R200 per person and kids under 12 are half price. For more information or to book, contact (083) 414 1932 or email info@insingizi.co.za. CLICK HERE to submit your press release to MyPR.co.za. …
Tagged With: Kwa-Zulu Natal
UJ retain title in USSA women's soccer champs
The University of Johannesburg women's soccer team continued to show their dominance at a varsity level by retaining the University Sport South Africa title last week. The event was played at Wits in Johannesburg with UJ, who won in Port Elizabeth in July last year, defeating University of Western Cape in the final. It was a good week for the UJ teams because the men's squad finished third in their tournament, comfortably qualifying for the prestigious Varsity Football competition in 2020. The top eight teams from the men's USSA event will play Varsity Football. The women's team faced a serious challenge for top honours in the final with UWC and the score was deadlocked at 0-0 after fulltime. The contest was decided on a penalty shootout, which the Orange Army took 4-3. Coach Jabulile Baloyi said they had adopted the slogan "TEAM" in their quest for success – "Together Everyone Achieves More". Their success, she added, was all about putting in maximum effort to get positive results. "We had the right attitude and to that we added hard work, determination and ensuring we played for the team. "We went into each fixture with a clear goal of how we wanted to approach the game according to the opposition we were facing." She added that one of the primary objectives for the technical team was to keep the players focused on each match as it happened. "We wanted to make sure the players were not playing the final before actually reaching the final. "In addition, the depth in our squad played a big role in our eventual success as we were able to rest players during the week. Baloyi said it was a case of the whole team standing together during the week, with everyone contributing at some stage. "I don't want to mention names, but just to illustrate what I mean is that one player came on at halftime against Rhodes and scored five goals." However, she did single out Dineo Magagula, who was named goalkeeper of the tournament. "In …
Tagged With: Johannesburg
Cape Town Big Wave Surfer Matt Bromley Honoured At Eddie Aikau Ceremony
(MyPR.co.za) December 10, 2019 By // by Craig Jarvis Filed Under: Featured, Sports
Cape Town Surfer Matt Bromley Attends Eddie Aikau Opening Function Waimea Bay, North Shore, Oahu, Hawaii – Kommetjie big wave surfer Matt Bromley recently attended the Eddie Aikau Big Wave Invitational opening ceremony at Waimea Bay. The Eddie Aikau Big Wave Invitational is affectionately known as 'The Eddie' and is the most prestigious big wave event in the world. Bromley is an alternate invitee for the event. Monster Energy surfer Bromley has had a good year charging giant waves around the planet, and has been rewarded for his big wave performances by getting an alternate invite into the contest. "I'm super excited and honoured to be a part of such a big thing as The Eddie," said Bromley from the opening ceremony. "When you're here in Hawaii you get a feeling of what a big deal The Eddie is, what it actually means to the locals, and how people look up to it as such a prestigious contest." The Eddie only takes place when the waves reach 20 foot at Waimea Bay, and it has only happened 9 times over the last 32 years. The last time the event run was in 2016 and Hawaiian surfer and former Championship Tour world champion John John Florence won it, after he narrowly defeated Australian surfer Ross Clarke- Jones in the final. Clarke-Jones made a career out of The Eddie, making it his life goal to win the event. He did so in 2001, and his runner-up position in 2016 was the closest he had ever come to winning it for the second time. Apart from Florence and Clarke-Jones, other winners include Denton Miyamura, Clyde Aikau, Keone Downing, Noah Johnson, Kelly Slater, Bruce Irons and Greg Long. Event website: https://www.theeddieaikau.com/ The Holding Period for the 2018-2019 Eddie Aikau Big Wave Challenge is Set for December 1, 2019 till February 29, 2020. Video: Cape Town Big Wave Surfer Matt Bromley Honoured At Eddie Aikau Ceremony More Info on Cape Town Big Wave Surfer Matt Bromley Honoured At Eddie Aikau Ceremony …
NEW HOLIDAY RUN WILL ADD TO J'BAY FESTIVITIES
(MyPR.co.za) December 10, 2019 By // by Maven Connection Filed Under: Sports
Put on your takkies, it is time for the biggest 10 km road race in Jeffreys Bay! Jeffreys Bay Striders would like to welcome Caltex Wavelands and Freshstop on board as new main sponsors for our annual Holiday Run. Caltex Eastern Cape Marketer (CECM) acting CEO, Pat Kelly said that they were excited to be part of the inaugural race this year. "We believe in adding value to the communities in which we operate, not just as the fuel provider, but also by adding value in creating platforms that encourage healthy living and comradery." Kelly said that the Caltex Wavelands Holiday Run has great potential and will bolster an already brimming events programme for the upcoming holidays. He added, "Caltex is committed to making your travels more enjoyable, safer and easy - so make sure that you pop in at one of the many Caltex service stations during your travels this festive season". Freshstop regional business consultant Roy Price said the company, which operates its convenience stores on Caltex forecourts, welcomed the opportunity to participate in the sponsorship as supporting sport and recreation aligned with "our ethos of promoting clean, healthy living for all". "Caltex Wavelands is very popular in this area, and Freshstop here is growing thanks to community support and so we are very happy and proud to be able to give something back," Price said. As Kouga Municipality's Mayor, Mr. Hendricks said: "As we near the end of another year, it gives me great pleasure to welcome all visitors to Kouga, the Events Capital of South Africa. We expect this festive season to be extra special, with more to see and do in our region than ever before." We would like to invite all of J'bay and its' holiday makers, serious athletes, neighbourhood joggers, walkers and doggies on leashes to participate and make the Caltex Wavelands Holiday Run the event of the year! The Caltex Wavelands Holiday Run will see runners take on the streets for a 10km road race or a 5km fun …
Tagged With: Eastern Cape
Feautured Press Releases
Contact Us to Advertise here
Press Releases by Region
Africa Bhisho Bloemfontein Cape Town CHOOSE ONE or MORE if Paying for a featured Press Release Durban Eastern Cape East London Free State Gauteng George Graaff-Reinet Grahamstown International Johanesburg Johannebsurg Johannesburg Kenya King William's Town Knysna Kwa-Zulu Natal KwaZulu-Natal Limpopo Mossel Bay Mpumalanga Mthatha mypr Nigeria Northern Cape North West Oudtshoorn Pietermaritzburg Pinetown Plettenberg Bay Port Elizabeth Pretoria Richards Bay rugby Sandton Sedgefield South Africa Soweto Stellenbosch Western Cape Wilderness
Media and PR Companies
KairoswebTV
Julian Pencilliah
At That Point PR
MyPressPortal
Free Press Release
Spintelligent
Peridot Communications
Icommunic8
Happy Daze Blog
WSI Web Marketing
Recent SA Press Releases
Cook up a Storm and Win Big at Rand Show 2020 What's on at #MyRandShow #JacarandaClashofKitchens
Cheaper Data, Higher Incomes To Lift App Market In 2020
The Newest Addition to Mac Brothers
Insingizi Hosts Internationally Acclaimed Author, Helena Kriel
Shining the spotlight on top achieving schools
Collaborative Consumption – an Emerging Property Trend for 2020 and Beyond
How TV is Effortlessly Changing Channels
VoQoL Technology Gives New Hope To Quadriplegic And Paraplegic Individuals
Spitfire launches Spitfire Inbound Academy
HAW expands its range of Intertraco hydraulic hose
Rockwell Automation to Acquire Avnet to Expand Cybersecurity Expertise
Back-to-school blues? Here's what you can do…
#VayauShaka this January
Launch of new Superbikes website
Your Turn to Wow the Crowds at Joburg's Talent What's on at #MyRandShow
Free Press Release Submission
PR Directory
Copyright © 2020 · PE, RSA · Privacy Policy · Advertising Options and Media Kit


text:
Tonight: the fourth NSWNMA Nurses & Midwives Short Film Festival
Twelve short films, written and produced by NSW nurses and midwives, for the NSW Nurses & Midwives Association's (NSWNMA) fourth Nurses & Midwives Short Film Festival, will premiere tonight, Thursday May 9, at the NSWNMA Gadigal Auditorium in Waterloo.
Tonight's Festival screening will be launched by Sydney TV and documentary producer, Patrick McInerney, who worked for many years on the popular factual-television hospital documentary, RPA.
The inaugural Nurses & Midwives Short Film Festival was held in 2009 and the Festival is now a biennial event on the NSW arts calendar.
The 2013 Festival has again produced a range of quality amateur films, which touch on some of life's biggest questions and intimate moments. A full list is attached.
It taps into nurses and midwives' unique view of society and presents a number of evocative and provocative themes to the wider community.
Mental health nursing, grief, community nursing, what it is like to be a nurse, childhood illness – these types of issues are all covered creatively, sensitively and, at times, humorously.
In taking up the challenge of this Festival the participating nurses and midwives have made a valuable contribution to the cultural life of NSW.
Since the 2011 Festival many nurses and midwives across NSW have been writing and producing a short film, of up to five minutes in length, telling a nursing/midwifery story. The film could be in any style, including documentary, comedy, drama, animation, horror or musical. The NSWNMA commissioned three film and advertising industry specialists to do the judging.
The three prize winners will be announced following tonight's screening. First prize is $5000, sponsored by First State Super. Second prize is $2000, sponsored by Behaviour Change, the Shannon Company. The third prize of $1000 is sponsored by the NSWNMA.
The inaugural Maureen Puhlmann Award of $1000, sponsored by the NSWNMA, will also be presented tonight to a first-time entrant in the Festival, who shows great promise in their filmmaking.
Many of the filmmakers screening tonight attended NIDA workshops, sponsored by the NSWNMA, prior to producing their film.
Premiere details
NSWNA Nurses & Midwives Short Film Festival 2013
Date: Thursday, 9 May
Time: 6.30pm – Cocktail Party
7.30pm – Films screening, followed by the announcement of winners
Venue: NSWNMA Gadigal Auditorium
50 O'Dea Ave, Waterloo
(Please note: The filmmakers will be present at the premiere and available for interviews.)
Patrick McInerney
Patrick has been a senior producer with Network Seven and the Nine Network for over ten years. In that time he has worked mainly in factual television on shows such as RPA and Border Security. He has also made a number of medical documentaries for National Geographic and the Discovery Channel, as well as African Wild Life Documentaries for Animal Planet. However, his true love is working in and filming around hospitals.
Film Festival program 2013
Lynne Ridge
Ph: 02 85951234
Help us fight for stronger, fairer conditions in NSW
Find Your Branch on Facebook


text:
"But immigration policy is not just about economics; it's also about rights, said James Hollifield, a professor and director of the Tower Center at Southern Methodist University. The U.S. has imported workers for years, often without giving them legal status, and that's coming home to roost.
"We've fudged that because it's a fairly difficult political and legal question," he told the audience on Friday, adding that people were not a commodity like shirts.
America has a history of embracing nativism after major waves of immigration. Hollifield cited a 1930 note from then-President Herbert Hoover: "The Italians are predominantly murderers and bootleggers [and you and your Italian supporters] should go back to where you belong."
"It's back to the future," Hollifield said about the sentiment coming out of Washington today. "Back to America first, back to protectionism, back to nativism — that's where we were in the 1920s."
Quote is from here. Profile of Hollifield is here.
× seven = thirty five


text:
Opposition disunity and foreign aid may help the Rajapaksas stay afloat
Home Around South Asia Sri Lanka
in Sri Lanka, Top Story, Uncategorized
Mahinda Rajapaksa with Gotabaya Rajapaksa
By P.K.Balachandan
Colombo, April 16: The Rajapaksa regime in Sri Lanka, extremely hard-pressed though it economically and politically, might still survive thanks to disunity among the Opposition parties and the massive infusion of financial and material aid to the country from abroad. The fact that the politically savvy Prime Minister Mahinda Rajapaksa has come out of his shell and is fronting for the reclusive and apolitical President Gotabaya Rajapaksa, is also expected to buttress the government.
There are essentially six critical factors working in favor of the regime. The first factor is the Rajapaksas' firm resolve to stay put in power so long as they have the backing of the constitution and the law. Their resolve is a major challenge to the Opposition which is chronically divided. President Gotabaya Rajapaksa has categorically told his detractors that he will not resign because he still has the mandate secured in the last elections and that he will not accept any corrective mechanism outside the framework of the constitution. This stance is fully backed by his elder brother, Prime Minister and political heavy weight, Mahinda Rajapaksa. The firmness of the Rajapaksas' means that the Opposition will have to marshal all its resources and put the brothers on the mat if it is to dislodge them. But it appears that it is incapable of doing so.
The second factor is opposition disunity. Although after the defection of 42 MPs from the ruling coalition, the government had only one more than the required number to stay in power, it has survived because the opposition has multiple and clashing aims and is also lacking a single leader. In an act of bravado, the Janatha Vimukthi Peramuna-led National People's Power (NPP) rejected the President's call to parties in parliament to accept cabinet portfolios in an all-party interim government. The JVP and NPP leader Anura Kumara Dissanayake said President Rajapaksa could not make such a suggestion when the people were demanding his exit at once and with one voice. The NPP/JVP MP, Vijitha Herath, said that the President should be "impeached", which is a very complicated process.
MPs of the breakaway group of the ruling Sri Lanka Podujana Peramuna (SLPP), the Sri Lanka Freedom Party (SLPP) and the 11-party alliance, jointly wrote to the President asking him to appoint an all-party government, and also a "National Executive Council" functioning above the cabinet. They also demanded a repeal of the 20 th.Amendment, which gives the President gargantuan powers; and the re-enactment of the 19 th.Amendment which had given more powers to parliament. The main opposition party, Samagi Jana Balawegaya (SJB), started collecting signatures for a Motion of No Confidence against the government. The Tamil National Alliance demanded the abolition of the Executive Presidency. But the Tamil Progressive Alliance (TPA) said that this demand was too ambitious and opted for the restoration of the 19 th.Amendment instead. The United National Party (UNP) leader Ranil Wickremesinghe asked the President to resign making way for him to become a caretaker President till the next election.
The opposition parties were also divided on the question of seeking IMF help to resolve the economic crisis. The Lanka Sama Samaj Party (LSSP) and the JVP/NPP are against going to the IMF, while the SJB and the United National Party (UNP) were for it.
The third factor is the inability of the Leader of the Opposition, Sajith Permadasa, to reconcile these different demands. He is unable to present one list of demands and press the government to accept them making use of the government's wafer thin majority in parliament. The opposition is amorphous and leaderless.
The fourth factor in favor of the government is the assumption of leadership by Prime Minister Mahinda Rajapaksa, a past master in politics. He is filling the void created by Gotabaya Rajapaksa who has gone into a shell. Disregarding his poor health, Mahinda Rajapaksa left the backseat he had been occupying since 2019 end to engage with politicians and state the government's case to the public. It was Mahinda Rajapaksa and not Gotabaya Rajapaksa who delivered an address to the nation over TV. In that, he showed empathy for the suffering public. But he also stated that the opposition had spurned his offer of positions in the government to jointly solve the country's problems. He then justified the government's decision to dig in and do its best to solve the problems on its own as mandated in the last elections.
The fifth factor is the amorphousness of the demonstrating citizens' group demanding the President's resignation. The demonstrators are basically apolitical middle and upper class youth. For them, protest is a part time activity. It is also a floating population, lacking an organizational structure and leadership. Prime Minister Mahinda Rajapaksa has cleverly offered to talk to them, knowing full well that they are not in a position to talk with one voice, except to keep chanting "Gota Go Home".
The sixth and the most critical factor is the help that the international community is giving to enable Sri Lanka to come out of the economic woods. Indian aid of US$ 2.5 billion to buy essential fuel, food and medicines, has been arriving, to the great relief of the government as well as the masses. India will help with 'bridge financing' to enable Sri Lanka before it gets the IMF facility.
China too has promised US$ 2.5 billion in loans and buyer's credit. The modalities for the disbursal of these funds are being worked out. Both India and China have enormous geostrategic and economic stakes in Sri Lanka and political stability is a necessary condition for those interests to be realized.
The US is at a remove as compared to India and China, but it is vitally interested in roping Sri Lanka into the anti-China, Indo-Pacific grouping. To achieve this, Washington will need a friendly and stable government in Colombo. Washington has clout in the IMF and the World Bank, which Sri Lanka has decided to approach for funds. It is expected that the US will help Sri Lanka in this regard. The encouraging part is that the Rajapaksa government has shed its reserve about approaching the IMF and will be sending a team of distinguished neo-liberal economists to negotiate with international funding institutions. President Gotabaya Rajapaksa has also spoken to other countries like Japan and South Korea and these have promised help.
With the onset of seasonal rains, hydro-electric power generation is expected to increase giving relief from long-duration power cuts. On the agricultural front, the Prime Minister has withdrawn the policy of disallowing chemical fertilizers and has revived the fertilizer subsidy to infuse life into the dying agricultural sector.
With the government indicating its determination to stay put and the international community inclined to help the incumbent government, some of those who left it are believed to be thinking of trekking back. SLFP MP Shantha Bandara is already back and is a State Minister now. And fellow partyman, Ranjth Siyambalapitiya, has also come back as Deputy Speaker. More MPs are likely to come back to the Rajapaksa fold. It is therefore likely that the government of the Rajapaksas will stay put to steer the ship of State through the troubled economic waters.


A Note on "Willing Executioners"
I don't think it affects your larger point, but "Hitler's Willing Executioners" is, at best, controversial. (Personally I think it's mostly crap.) Check out "A Nation on Trial" by Finkelstein and Birn in English or "Ein Volk von Moerdern" in German while Goldhagen is still fresh in your mind.
I don't speak German, but I am aware of the work by Norman Finkelstein and Ruth Birn, and of the controversies surrounding Goldhagen's book. Some of the latter stem, I believe, from a misreading or over-interpretation of Goldhagen's work, which states repeatedly that is dealing with one narrow, specific aspect of the Nazi phenomenon and the Holocaust: namely, the actions of the people who actually inflicted the torments and perpetrated the killings (and those who administratively facilitated these actions). It deals with the fact that almost all of the perpetrators acted of their own free will -- very often with enthusiasm and initiative, above and beyond the call of duty -- even when, in many if not most cases, they could have refused such duties without penalty.
Goldhagen also deals with the anti-Semitism that soaked German society, the obsessive idea that there was a "Jewish problem" that needed to be solved in one way or another, and the overwhelming acceptance of the notion that Jews should be segregated and removed, in one fashion or another, from German society (which Finkelstein also acknowledges). Goldhagen states repeatedly that this pervasive anti-Semitism was not the sole and inevitable cause of the Holocaust; but he does assert that it was an indispensable element in the development of the "Final Solution" of mass deportation, mass suffering, and mass murder. Without this baseline, without the pervasive belief that Jews were somehow lesser beings, were destructive, poisonous "Others" whose very presence caused terrible harm to the German nation, then the Nazis would not have been able to move from the Nuremberg Laws (which, as Finkelstein notes, were met with overwhelming public approval) to the death-camps.
The heart of Goldhagen's book are the hundreds of pages of descriptions of the activities of the perpetrators, told often in their own words, and the direct evidence of their positive attitude toward their activities -- activities which were more widely known in society than is generally assumed. As he notes, many of these testimonies have been ignored or under-utilized in examinations of the Holocaust, and thus the focus of his book is filling out this neglected niche in the vast field of Nazi-era studies. Goldhagen also makes clear, repeatedly, that these events had nothing to do with any racial, biological, national, spiritual or any other inherent quality in the German people; they arose out of a certain specific set of historical conditions.
Nor does he say, anywhere, either directly or by implication, that "the Germans are a species apart with their pathological anti-Semitism, [which] absolves them of all normal standards of moral culpability," as Birn alleges. She accuses of Goldhagen of having a "sugar-coated version of the Holocaust" (!), "which eliminates the need for people to constantly think about the ethical choices of right and wrong. " This conclusion simply cannot be supported by a reading of the book. Goldhagen repeatedly and explicitly rejects this thesis, and instead points out, over and over and over again, that the atrocities were carried out by individual moral agents, who were responsible for their actions, and who had to make constant ethical choices of right and wrong every single day -- especially given the fact, as Goldhagen demonstrates, that many if not most of the perpetrators could have stopped taking part in the atrocities at any time. Indeed, the moral culpability of individuals is in many ways the whole point of the book.
What Goldhagen is trying to do is to understand why so many Germans in that era made the choices they did to take part in such a monstrous activity. To try to understand a motive is not the same as explaining it away or absolving the perpetrator of his or her moral culpability. The latter is the argument made by apologists for the Terror War -- that you are "pro-terrorist" or "blaming the victim" or "absolving the terrorist" if you try to understand what motivates someone to take such an extreme action. It is also the argument made by apologists for Israel's manifold depredations against the Palestinians. And Finkelstein and Birn -- especially Finkelstein -- obviously do not fall into the camp of such apologists. Yet they are using a version of that discreditable argument in the case of Goldhagen's book.
Again, this is not to endorse every single conclusion that Goldhagen draws from the evidence and the testimonies he examines. Nor do I have the slightest desire to wade into what is in many ways an academic cat-fight, and one which has more to do with present-day politics than historical truth. (On the political side, I am much in sympathy with Finkelstein, who has been subjected to censorship, prejudice and banishment (from Israel) for his own scholarship; including his critiques of Goldhagen.) I don't know what Goldhagen's politics are. I don't doubt that the book has been put to partisan use, or that it contains conclusions and interpretations open to dispute or refutation. What work of history doesn't? But I am not an academic, or an intellectual, or an ideologue. What I am interested in are the historical facts that he presents, and what they say about human nature, and the patterns and dynamics of human behavior, especially in the context of large-scale actions initiated by a powerful state.


Tabungan SimPel BCA is a savings account specifically designed for PAUD, SD, SMP and SMA students who are under 17 and has yet to own a KTP.
Tabungan SimPel BCA will help you manage your finances, build a healthy saving habit, and prepare for the future by introducing banking products and services from an early age.
Tabungan SimPel BCA is a reflection of BCA's support for the development of Indonesia's younger generaion, especially in building healthy saving habits among students.
Tabungan Pelajar intended for students of early childhood, Kindergarten, Elementary, Junior High, Senior High School, Madrasah (MI, MTs, MA) or equivalent who are under 17 years old and do not have an ID card.
Customers are given SimPel card with account holder name. SimPel card limit is similar to Paspor BCA Silver card.
Maximum reward value is listed below.
Debit transactions are limited to 4 times a month. Additional transactions will incur a fee per transaction.
* Must be provided. If student cannot provide either of these documents, then account opening must follow the procedure for <12 y/o regardless of account holder actual age.


It is a question often asked by eager homeschooling parents. The preschool years, usually considered ages two to five, are such an exciting time. Young children, full of curiosity, are ready to begin learning and exploring the world around them. They are full of questions and everything is new and exciting.
Because preschoolers are like sponges, soaking in amazing amounts of information, it's understandable that parents want to capitalize on that. However, formal curriculum can be stifling to a young child. Preschool children learn best through play, interaction with the people around them, imitation, and hands-on experiences.
That said, there is nothing wrong with investing in some quality educational resources for preschoolers and spending some time on formal learning and seat work with your two- to five-year-old. However, ideally, formal work should be kept to 15-20 minutes at a time and limited to an hour or so daily.
Limiting the time you spend formally teaching your preschooler doesn't mean that learning isn't taking place the rest of the day. There are many ways to teach young children without curriculum, and most of them you are probably already doing. Don't overlook the educational value of these everyday interactions with your child.
Make it a point to regularly engage your preschooler. Young children are no strangers to asking questions, but be sure you're asking some of your own. Ask your preschooler about his play activity. Ask him to describe his drawing or creation.
Make sure you're asking the questions as part of an overall conversation with your child. Don't make her feel like you're quizzing her.
Don't use baby talk with your preschooler or modify your vocabulary. I'll never forget the time my two-year-old stated that it was "ridiculous" that a certain attraction was closed at the children's museum.
Children are fantastic contextual learners when it comes to vocabulary, so don't purposely choose simpler words when you would normally use a more complex one. You can always ask your child to be sure she understands and explain if she doesn't.
Practice naming objects that you encounter as you go about your daily routine, and call them by their actual names. For example, "This white flower is a daisy and that yellow one is a sunflower" instead of just calling them flowers.
One of the best sit-down ways for young children to learn is reading books together. Spend time reading with your preschoolers every day—even that book you've read so many times you don't even have to look at the words anymore. Preschoolers also learn through repetition, so even though you're tired of the book, reading it—again—provides another learning opportunity for them.
Make sure that you take time to slow down and enjoy the illustrations as well. Talk about the objects in the pictures or how the characters' facial expressions show how they're feeling.
Use the books you read as a springboard for extension activities. Are you reading Blueberries for Sal? Go blueberry picking or bake blueberry cobbler together. Are you reading The Story of Ferdinand? Look up Spain on a map. Practice counting to ten or saying hello in Spanish.
The Big Red Barn? Visit a farm or petting zoo. If You Give a Mouse a Cookie? Bake cookies together or dress up and take pictures.
Picture Book Activities by Trish Kuffner is an excellent resource for activities designed for preschoolers and based on popular children's books.
Don't feel that you have to limit your child to picture books.Young children often enjoy more complex stories. I had a friend who couldn't wait to share her love of Chronicles of Narnia with her children. She read the entire series to them when they were preschool and early elementary age.
You may want to consider classics such as Peter Pan or Winnie the Pooh. The Classics Starts series, designed for readers ages 7-9, is also an excellent option for introducing young children—even preschoolers—to classic literature.
Fred Rogers said, "Play is really the work of childhood." Play is how children assimilate information about the world around them. One simple way for preschoolers to learn without curriculum is to provide a learning-rich environment. Create an atmosphere that invites creative free play and exploration.
Young children love to play dress up and learn through imitation and pretend play. Have fun playing store or restaurant with your child.
Begin laying the simple foundations for math concepts such as big and little; large and small; and more or less. Talk about spatial relations such as near and far and in front of or behind. Talk about shapes, patterns, and colors. Ask your child to look for objects that are round or those that are blue.
Categorize objects. For example, you can name various types of insects that you see—ants, beetles, flies, and bees – but also put them in the category "insects" and talk about what makes them each an insect. What do they have in common? What makes chickens, ducks, cardinals, and blue jays all birds?
The activities that you do as you go through your day may be routine to you but fascinating to a young child. Don't miss those teachable moments. Let your preschooler help you measure ingredients as you bake. Explain how he can stay safe in the kitchen. Don't climb on cabinets. Don't touch knives without asking. Don't touch the stove.
Let him weigh the produce at the grocery stores. Ask him to predict which he thinks will weigh more or less—the orange or the grapefruit. Identify the yellow bananas, the red tomatoes, and the green cucumbers. Encourage him to count the oranges as you place them in your shopping cart.
Preschoolers are learning all the time, often with little purposeful input from the adults around them. If you want to purchase preschool curriculum, that's fine, but don't feel as though you must do so in order for your preschooler to learn.
Instead, be intentional in your interactions with your child because there are countless ways for preschoolers to learn without a curriculum.


text:
Home > Libraries > SCHOLCOM > 14
Libraries at University of Nebraska-Lincoln
Copyright, Fair Use, Scholarly Communication, etc.
Remanded Decision in Cambridge University Press, Oxford University Press, & SAGE Publications vs. Georgia State University et al.
Orinda D. Evans, UNITED STATES DISTRICT JUDGE, Northern District of Georgia, Atlanta Division
IN THE UNITED STATES DISTRICT COURT FOR THE NORTHERN DISTRICT OF GEORGIA, ATLANTA DIVISION
CIVIL ACTION NO. 1:08-CV-1425-ODE
This is a public domain document.
Defendants' Motion to Strike Portions of Plaintiffs' Remand Brief and to Disregard Declaration [Doc. 502] is GRANTED. This case is currently before the Court for fair use analysis with respect to 48 infringement claims. Plaintiffs are entitled to prevail on the claims involving 7 works in Georgia State classes. With respect to the other infringement claims, Defendants are entitled to prevail.
Defendants are the prevailing side and are entitled to an award of costs and attorneys' fees.
Intellectual Property Law Commons, Scholarly Communication Commons, Scholarly Publishing Commons
Submit your paper or article
Libraries Website


text:
Q: framework not found -Xlinker I'm having trouble while running/archiving iOS application and getting linker command failed with exit code 1 error. I already looked around many articles, but still not finding way to fix it.

None of frameworks added to Link Binary with Libraries section

And this are the Framework Search Path just as a reference.

Please ask for the lack of information.
Thankyou.

redpajama_set_name: RedPajamaStackExchange


text:
Hi there. See you don't run JavaScript. That's cool. This site uses it for layout and the navigation menu (standard jQuery and Bootstrap) and to obfuscate email addresses.
A tag for organizing content
In 1923, Walt Disney's Laugh-O-Gram Studio was bankrupt, so he founded the Disney Brothers Cartoon Studio with his brother Roy. Their company would gradually mutate into an empire, one of the major Hollywood studios, working in all media. As a result, there is no longer any thematic or stylistic consistency in Disney productions. Even the old "family magic" slogan seems irrelevant. For this reason, a general Disney tag is almost useless. I am applying this tag inconsistently while I think about how to split it: By company, by era?
Silly Symphonies (1929)
"The Skeleton Dance" (1929)
"Santa's Workshop" (1932)
"Music Land" (1935)
Pinocchio (1940)
"7 Wise Dwarfs" (1941)
The Reluctant Dragon (1941)
"The Thrifty Pig" (1941)
"All Together" (1942)
"Der Fuehrer's Face" (1942)
"Donald Gets Drafted" (1942)
"Donald's Decision" (1942)
"Food Will Win the War" (1942)
"Four Methods of Flush Riveting" (1942)
"Out of the Frying Pan Into the Firing Line" (1942)
"Saludos Amigos" (1942)
"Sky Trooper" (1942)
"Stop That Tank!" (1942)
"The Army Mascot" (1942)
"The New Spirit" (1942)
"The Vanishing Private" (1942)
"Chicken Little" (1943)
"Education for Death: The Making of the Nazi" (1943)
"Fall Out-Fall in" (1943)
"Home Defense" (1943)
"Private Pluto" (1943)
"Reason and Emotion" (1943)
"The Grain That Built a Hemisphere" (1943)
"The Old Army Game" (1943)
"The Spirit of '43" (1943)
"The Winged Scourge" (1943)
Victory Through Air Power (1943)
"Victory Vehicles" (1943)
"Commando Duck" (1944)
"How to Be a Sailor" (1944)
The Three Caballeros (1944)
"Health for the Americas: Cleanliness Brings Health" (1945)
"Health for the Americas: The Unseen Enemy" (1945)
"After You've Gone" (1946)
"All the Cats Join In" (1946)
"Blue Bayou" (1946)
"Casey at the Bat" (1946)
"Defense Against Invasion" (1946)
"Health for the Americas: Planning for Good Eating" (1946)
"Johnnie Fedora and Alice Bluebonnet" (1946)
Make Mine Music (1946)
"Peter and the Wolf" (1946)
"The Martins and the Coys" (1946)
"The Whale Who Wanted to Sing at the Met" (1946)
Two Silhouettes (1946)
Without You (1946)
"Bongo" (1947)
Fun & Fancy Free (1947)
"Mickey and the Beanstalk" (1947)
"Blame It on the Samba" (1948)
"Bumble Boogie" (1948)
"Little Toot" (1948)
Melody Time (1948)
"Once Upon a Wintertime" (1948)
"Pecos Bill" (1948)
"The Legend of Johnny Appleseed" (1948)
The Adventures of Ichabod and Mr. Toad (1949)
Peter Pan (1953)
Lady and the Tramp (1955)
Old Yeller (1957)
One Hundred and One Dalmatians (1961)
The Sword in the Stone (1963)
That Darn Cat! (1965)
The Love Bug (1968)
Aristocats (1970)
Bedknobs and Broomsticks (1971)
Pete's Dragon (1977)
The Many Adventures of Winnie the Pooh (1977)
The Rescuers (1977)
The Fox and the Hound (1981)
The Black Cauldron (1985)
The Great Mouse Detective (1986)
Oliver & Company (1988)
The Rescuers Down Under (1990)
The Hunchback of Notre Dame (1996)
Tarzan (1999)
The Tigger Movie (2000)
Atlantis: The Lost Empire (2001)
Lilo & Stitch (2002)
Treasure Planet (2002)
The Wild (2006)
Bolt (2008)
The Princess and the Frog (2009)
Tangled (2010)
The following make direct references to the Disney tag.
"I'd Love to Take Orders from You" (1936)
Hakujaden (1958)
Saiyūki (1960)
Castle in the Sky (1986)
Waking Sleeping Beauty (2009)
Despicable Me (2010)
Viewed 2020-01-19. Ugly in unsafe old browsers.


In this game genre, logic you play as a pair of inseparable friends - Shaggy and Scooby-Doo.
© Free online game Haunts for the Holidays. .
Play online flash game Haunts for the Holidays. for free. Do not forget to rate this game Haunts for the Holidays. and share this game with your best friends.


Home insurance is not as easy as the 5-minute online quotes direct writers and banks want you to think. Let us help you go through your home and properly evaluate your dwelling, list scheduled items like jewelry, and other collectibles, as well as make sure your coverage is perfect for your home and lifestyle.
With home rates on the rise due to overwhelming amount of water and hail claims its more important now than ever to make sure you are properly protected. View our Loss Mitigation PDF for more details.


In this chapter, new members join team Bleach and team Naruto. Kurotsuchi Mayuri participates team Bleach and Killer B. participates team Naruto. Besides of these fighters, tens of skilled fighter will be with you in this chapter either. Pick up your fighter and fight against your friend or embark on a fighting adventure.


The Dynaudio M3XE is the ultimate main monitoring solution, and a significant upgrade from its predecessor – the M3A 3-way monitor. Each speaker is powered by a four channel PLM 12k44 amplifier from Lab.gruppen, using the integrated Lake active cross-over processing as well as powering the HF, MF, and dual LF woofers by the four independent amplifier channels of the 12k44. With the newest Dynaudio ESOTAR² driver technology, impressive 22Hz – 21kHz frequency response, and beyond 135dB SPL, the M3XE leaves no room for desire in terms of resolution, range, or sheer power.
Same base and upright as ADJ1-44 speaker stand with base dimensions 14" wide x 17" deep & uprights are 44" tall.
Same base and upright as Plasma1 stand with base dimensions 36" wide x 18" deep & standard uprights are 60" or 72".