text:
<?php

defined('AJXP_EXEC') or die( 'Access not allowed');

/**
 * Parses an EML file and return the result as XML
 * @package AjaXplorer_Plugins
 * @subpackage Editor
 */
class EmlParser extends AJXP_Plugin
{
    public static $currentListingOnlyEmails;

    public function performChecks()
    {
        if (!AJXP_Utils::searchIncludePath("Mail/mimeDecode.php")) {
            throw new Exception("Cannot find Mail/mimeDecode PEAR library");
        }
    }

    public function switchAction($action, $httpVars, $filesVars)
    {
        $repository = ConfService::getRepository();
        if (!$repository->detectStreamWrapper(true)) {
            return false;
        }

        $selection = new UserSelection($repository, $httpVars);
        if($selection->isEmpty()) return;
        $node = $selection->getUniqueNode();
        $file = $node->getUrl();
        AJXP_Controller::applyHook("node.read", array($node));

        $wrapperClassName = AJXP_MetaStreamWrapper::actualRepositoryWrapperClass($repository->getId());

        $mess = ConfService::getMessages();
        switch ($action) {
            case "eml_get_xml_structure":
                $params = array(
                    'include_bodies' => false,
                    'decode_bodies' => false,
                    'decode_headers' => 'UTF-8'
                );
                $decoder = $this->getStructureDecoder($file, ($wrapperClassName == "imapAccessWrapper"));
                $xml = $decoder->getXML($decoder->decode($params));
                if (function_exists("imap_mime_header_decode")) {
                    $doc = new DOMDocument();
                    $doc->loadXML($xml);
                    $xPath = new DOMXPath($doc);
                    $headers = $xPath->query("//headername");
                    $changes = false;
                    foreach ($headers as $headerNode) {
                        if ($headerNode->firstChild->nodeValue == "Subject") {
                            $headerValueNode = $headerNode->nextSibling->nextSibling;
                            $value = $headerValueNode->nodeValue;
                            $elements = imap_mime_header_decode($value);
                            $decoded = "";
                            foreach ($elements as $element) {
                                $decoded.=$element->text;
                                $charset = $element->charset;
                            }
                            if ($decoded != $value) {
                                $value = SystemTextEncoding::changeCharset($charset, "UTF-8", $decoded);
                                $node = $doc->createElement("headervalue", $value);
                                $res = $headerNode->parentNode->replaceChild($node, $headerValueNode);
                                $changes = true;
                            }
                        }
                    }
                    if($changes) $xml = $doc->saveXML();
                }
                print $xml;
            break;
            case "eml_get_bodies":
                require_once("Mail/mimeDecode.php");
                $params = array(
                    'include_bodies' => true,
                    'decode_bodies' => true,
                    'decode_headers' => false
                );
                if ($wrapperClassName == "imapAccessWrapper") {
                    $cache = AJXP_Cache::getItem("eml_remote", $file, null, array("EmlParser", "computeCacheId"));
                    $content = $cache->getData();
                } else {
                    $content = file_get_contents($file);
                }

                $decoder = new Mail_mimeDecode($content);
                $structure = $decoder->decode($params);
                $html = $this->_findPartByCType($structure, "text", "html");
                $text = $this->_findPartByCType($structure, "text", "plain");
                if ($html != false && isSet($html->ctype_parameters) && isSet($html->ctype_parameters["charset"])) {
                    $charset = $html->ctype_parameters["charset"];
                }
                if (isSet($charset)) {
                    header('Content-Type: text/xml; charset='.$charset);
                    header('Cache-Control: no-cache');
                    print('<?xml version="1.0" encoding="'.$charset.'"?>');
                    print('<email_body>');
                } else {
                    AJXP_XMLWriter::header("email_body");
                }
                if ($html!==false) {
                    print('<mimepart type="html"><![CDATA[');
                    $text = $html->body;
                    print($text);
                    print("]]></mimepart>");
                }
                if ($text!==false) {
                    print('<mimepart type="plain"><![CDATA[');
                    print($text->body);
                    print("]]></mimepart>");
                }
                AJXP_XMLWriter::close("email_body");

            break;
            case "eml_dl_attachment":
                $attachId = $httpVars["attachment_id"];
                if(!isset($attachId)) break;

                require_once("Mail/mimeDecode.php");
                $params = array(
                    'include_bodies' => true,
                    'decode_bodies' => true,
                    'decode_headers' => false
                );
                if ($wrapperClassName == "imapAccessWrapper") {
                    $cache = AJXP_Cache::getItem("eml_remote", $file, null, array("EmlParser", "computeCacheId"));
                    $content = $cache->getData();
                } else {
                    $content = file_get_contents($file);
                }
                $decoder = new Mail_mimeDecode($content);
                $structure = $decoder->decode($params);
                $part = $this->_findAttachmentById($structure, $attachId);
                if ($part !== false) {
                    $fake = new fsAccessDriver("fake", "");
                    $fake->readFile($part->body, "file", $part->d_parameters['filename'], true);
                    exit();
                } else {
                    //var_dump($structure);
                }
            break;
            case "eml_cp_attachment":
                $attachId = $httpVars["attachment_id"];
                $destRep = AJXP_Utils::decodeSecureMagic($httpVars["destination"]);
                if (!isset($attachId)) {
                    AJXP_XMLWriter::sendMessage(null, "Wrong Parameters");
                    break;
                }

                require_once("Mail/mimeDecode.php");
                $params = array(
                    'include_bodies' => true,
                    'decode_bodies' => true,
                    'decode_headers' => false
                );
                if ($wrapperClassName == "imapAccessWrapper") {
                    $cache = AJXP_Cache::getItem("eml_remote", $file, null, array("EmlParser", "computeCacheId"));
                    $content = $cache->getData();
                } else {
                    $content = file_get_contents($file);
                }

                $decoder = new Mail_mimeDecode($content);
                $structure = $decoder->decode($params);
                $part = $this->_findAttachmentById($structure, $attachId);
                AJXP_XMLWriter::header();
                if ($part !== false) {
                    $destStreamURL = $selection->currentBaseUrl();
                    if (isSet($httpVars["dest_repository_id"])) {
                        $destRepoId = $httpVars["dest_repository_id"];
                        if (AuthService::usersEnabled()) {
                            $loggedUser = AuthService::getLoggedUser();
                            if(!$loggedUser->canWrite($destRepoId)) throw new Exception($mess[364]);
                        }
                        $destRepoObject = ConfService::getRepositoryById($destRepoId);
                        $destRepoObject->detectStreamWrapper(true);
                        $destStreamURL = "pydio://$destRepoId";
                    }
                    $destFile = $destStreamURL.$destRep."/".$part->d_parameters['filename'];
                    $fp = fopen($destFile, "w");
                    if ($fp !== false) {
                        fwrite($fp, $part->body, strlen($part->body));
                        fclose($fp);
                        AJXP_XMLWriter::sendMessage(sprintf($mess["editor.eml.7"], $part->d_parameters["filename"], $destRep), NULL);
                    } else {
                        AJXP_XMLWriter::sendMessage(null, $mess["editor.eml.8"]);
                    }
                } else {
                    AJXP_XMLWriter::sendMessage(null, $mess["editor.eml.9"]);
                }
                AJXP_XMLWriter::close();
            break;

            default:
            break;
        }
    }

    /**
     * @param AJXP_Node $ajxpNode
     * @param Boolean $isParent
     */
    public function extractMimeHeaders(&$ajxpNode, $isParent = false)
    {
        if($isParent) return;
        $currentNode = $ajxpNode->getUrl();
        $metadata = $ajxpNode->metadata;
        $wrapperClassName = AJXP_MetaStreamWrapper::actualRepositoryWrapperClass($ajxpNode->getRepositoryId());

        $noMail = true;
        if ($metadata["is_file"] && ($wrapperClassName == "imapAccessWrapper" || preg_match("/\.eml$/i",$currentNode))) {
            $noMail = false;
        }
        if ($wrapperClassName == "imapAccessWrapper" && !$metadata["is_file"]) {
            $metadata["mimestring"] = "Mailbox";
        }
        $parsed = parse_url($currentNode);
        if ( $noMail || ( isSet($parsed["fragment"]) && strpos($parsed["fragment"], "attachments") === 0 ) ) {
            EmlParser::$currentListingOnlyEmails = FALSE;
            return;
        }
        if (EmlParser::$currentListingOnlyEmails === NULL) {
            EmlParser::$currentListingOnlyEmails = true;
        }
        if ($wrapperClassName == "imapAccessWrapper") {
            $cachedFile = AJXP_Cache::getItem("eml_remote", $currentNode, null, array("EmlParser", "computeCacheId"));
            $realFile = $cachedFile->getId();
            if (!is_file($realFile)) {
                $cachedFile->getData();// trigger loading!
            }
        } else {
            $realFile = $ajxpNode->getRealFile();
        }
        $cacheItem = AJXP_Cache::getItem("eml_mimes", $realFile, array($this, "mimeExtractorCallback"));
        $data = unserialize($cacheItem->getData());
        $data["ajxp_mime"] = "eml";
        $data["mimestring"] = "Email";
        $metadata = array_merge($metadata, $data);
        if ($wrapperClassName == "imapAccessWrapper" && $metadata["eml_attachments"]!= "0" && (strpos($_SERVER["HTTP_USER_AGENT"], "ajaxplorer-ios") !== false)) {
            $metadata["is_file"] = false;
            $metadata["nodeName"] = basename($currentNode)."#attachments";
        }
        $ajxpNode->metadata = $metadata;
    }

    public function mimeExtractorCallback($masterFile, $targetFile)
    {
        $metadata = array();
        require_once("Mail/mimeDecode.php");
        $params = array(
            'include_bodies' => true,
            'decode_bodies' => false,
            'decode_headers' => 'UTF-8'
        );
        $mess = ConfService::getMessages();
        $content = file_get_contents($masterFile);
        $decoder = new Mail_mimeDecode($content);
        $structure = $decoder->decode($params);
        $allowedHeaders = array("to", "from", "subject", "message-id", "mime-version", "date", "return-path");
        foreach ($structure->headers as $hKey => $hValue) {
            if(!in_array($hKey, $allowedHeaders)) continue;
            if (is_array($hValue)) {
                $hValue = implode(", ", $hValue);
            }
            if ($hKey == "date") {
                $date = strtotime($hValue);
                $metadata["eml_time"] = $date;
            }
            $metadata["eml_".$hKey] = AJXP_Utils::xmlEntities(@htmlentities($hValue, ENT_COMPAT, "UTF-8"));
            //$this->logDebug($hKey." - ".$hValue. " - ".$metadata["eml_".$hKey]);
            if ($metadata["eml_".$hKey] == "") {
                $metadata["eml_".$hKey] = AJXP_Utils::xmlEntities(@htmlentities($hValue));
                if (!SystemTextEncoding::isUtf8($metadata["eml_".$hKey])) {
                    $metadata["eml_".$hKey] = SystemTextEncoding::toUTF8($metadata["eml_".$hKey]);
                }
            }
            $metadata["eml_".$hKey] = str_replace("&", "&", $metadata["eml_".$hKey]);
        }
        $metadata["eml_attachments"] = 0;
        $parts = $structure->parts;
        if (!empty($parts)) {
            foreach ($parts as $mimePart) {
                if (!empty($mimePart->disposition) && $mimePart->disposition == "attachment") {
                    $metadata["eml_attachments"]++;
                }
            }
        }
        $metadata["icon"] = "eml_images/ICON_SIZE/mail_mime.png";
        file_put_contents($targetFile, serialize($metadata));
    }

    public function lsPostProcess($action, $httpVars, $outputVars)
    {
        if (!EmlParser::$currentListingOnlyEmails) {
            if(isSet($httpVars["playlist"])) return;
            header('Content-Type: text/xml; charset=UTF-8');
            header('Cache-Control: no-cache');
            print($outputVars["ob_output"]);
            return;
        }

        $config = '<columns template_name="eml.list">
            <column messageId="editor.eml.1" attributeName="ajxp_label" sortType="String"/>
            <column messageId="editor.eml.2" attributeName="eml_to" sortType="String"/>
            <column messageId="editor.eml.3" attributeName="eml_subject" sortType="String"/>
            <column messageId="editor.eml.4" attributeName="ajxp_modiftime" sortType="MyDate"/>
            <column messageId="2" attributeName="filesize" sortType="NumberKo"/>
            <column messageId="editor.eml.5" attributeName="eml_attachments" sortType="Number" modifier="EmlViewer.prototype.attachmentCellRenderer" fixedWidth="30"/>
        </columns>';

        $dom = new DOMDocument("1.0", "UTF-8");
        $dom->loadXML($outputVars["ob_output"]);
        $mobileAgent = AJXP_Utils::userAgentIsIOS() || AJXP_Utils::userAgentIsNativePydioApp();
        $this->logDebug("MOBILE AGENT DETECTED?".$mobileAgent, $_SERVER["HTTP_USER_AGENT"]);
        if (EmlParser::$currentListingOnlyEmails === true) {
            // Replace all text attributes by the "from" value
            $index = 1;
            foreach ($dom->documentElement->childNodes as $child) {
                if ($mobileAgent) {
                    $from = $child->getAttribute("eml_from");
                    $ar = explode("<", $from);
                    $from = trim(array_shift($ar));
                    $text = ($index < 10?"0":"").$index.". ".$from." > ".$child->getAttribute("eml_subject");
                    if (AJXP_Utils::userAgentIsNativePydioApp()) {
                        $text = html_entity_decode($text, ENT_COMPAT, "UTF-8");
                    }
                    $index ++;
                } else {
                    $text = $child->getAttribute("eml_from");
                }
                $child->setAttribute("text", $text);
                $child->setAttribute("ajxp_modiftime", $child->getAttribute("eml_time"));
            }
        }

        // Add the columns template definition
        $insert = new DOMDocument("1.0", "UTF-8");
        $config = "<client_configs><component_config className=\"FilesList\" local=\"true\">$config</component_config></client_configs>";
        $insert->loadXML($config);
        $imported = $dom->importNode($insert->documentElement, true);
        $dom->documentElement->appendChild($imported);
        header('Content-Type: text/xml; charset=UTF-8');
        header('Cache-Control: no-cache');
        print($dom->saveXML());
    }

    /**
     *
     * Enter description here ...
     * @param string $file url
     * @param boolean $cacheRemoteContent
     * @return Mail_mimeDecode
     */
    public function getStructureDecoder($file, $cacheRemoteContent = false)
    {
        require_once ("Mail/mimeDecode.php");
        if ($cacheRemoteContent) {
            $cache = AJXP_Cache::getItem ( "eml_remote", $file , null, array("EmlParser", "computeCacheId"));
            $content = $cache->getData ();
        } else {
            $content = file_get_contents ( $file );
        }
        $decoder = new Mail_mimeDecode ( $content );

        header ( 'Content-Type: text/xml; charset=UTF-8' );
        header ( 'Cache-Control: no-cache' );
        return $decoder;
    }

    // $cacheRemoteContent = false
    public function listAttachments($file, $cacheRemoteContent, &$attachments,  $structure = null)
    {
        if ($structure == null) {
            $decoder = $this->getStructureDecoder($file, $cacheRemoteContent);
               $params = array(
                   'include_bodies' => false,
                   'decode_bodies' => false,
                   'decode_headers' => 'UTF-8'
               );
            $structure = $decoder->decode($params);
        }
        if (isSet($structure->disposition) && $structure->disposition == "attachment") {
            $attachments[] = array(
                "filename" => $structure->d_parameters['filename'],
                "content-type" => $structure->ctype_primary."/".$structure->ctype_secondary,
                "x-attachment-id" => (isSet($structure->headers["x-attachment-id"])?$structure->headers["x-attachment-id"]:count($attachments))
            );
        } else if (isset($structure->parts)) {
            foreach ($structure->parts as $partObject) {
                $this->listAttachments($file, true, $attachments, $partObject);
            }
        }
    }

    public function getAttachmentBody($file, $attachmentId, $cacheRemoteContent = false, &$metadata = array())
    {
        $decoder = $this->getStructureDecoder($file, $cacheRemoteContent);
           $params = array(
               'include_bodies' => true,
               'decode_bodies' => true,
               'decode_headers' => 'UTF-8'
           );
        $structure = $decoder->decode($params);
        $part = $this->_findAttachmentById($structure, $attachmentId);
        if($part == false) return false;
        $metadata = array(
            "filename" => $part->d_parameters['filename'],
            "content-type" => $part->ctype_primary."/".$part->ctype_secondary,
            "x-attachment-id" => $attachmentId
        );
        return $part->body;
    }

    protected function _findPartByCType($structure, $primary, $secondary)
    {
        if ($structure->ctype_primary == $primary && $structure->ctype_secondary == $secondary) {
            return $structure;
        }
        if(empty($structure->parts)) return false;
        foreach ($structure->parts as $part) {
            $res = $this->_findPartByCType($part, $primary, $secondary);
            if ($res !== false) {
                return $res;
            }
        }
        return false;
    }

    protected function _findAttachmentById($structure, $attachId)
    {
        if (is_numeric($attachId)) {
            $attachId = intval($attachId);
            if(empty($structure->parts)) return false;
            $index = 0;
            foreach ($structure->parts as $part) {
                if (!empty($part->disposition) &&  $part->disposition == "attachment") {
                    if($index == $attachId) return $part;
                    $index++;
                }
            }
            return false;
        } else {
            if(!empty($structure->disposition) &&  $structure->disposition == "attachment"
                && ($structure->headers["x-attachment-id"] == $attachId || $attachId == "0" )){
                return $structure;
            }
            if(empty($structure->parts)) return false;
            foreach ($structure->parts as $part) {
                $res = $this->_findAttachmentById($part, $attachId);
                if ($res !== false) {
                    return $res;
                }
            }
            return false;
        }
    }

    public static function computeCacheId($mailPath)
    {
        $header = file_get_contents($mailPath."#header");
        //$this->logDebug("Headers ", $header);
        return md5($header);
    }

}


Imagine receiving an elaborately wrapped gift platter filled with the most exotic sweet meats. From burfee to magaj and jalebee to halwa, the platter promises the taste buds a trip to gastronomic 'heaven'. However, as you undo the wrapping and pull back the cellophane, you see a flash of movement. No! A giant cockroach darts out from behind the burfee block and climbs over the goolaab jamoon in its race for freedom!
This is a typical example of an anticlimax. A person expected one thing, and everything seemed promising, and suddenly, things turned out completely contrary to expectations.
Read more: 'Eid or Anticlimax?
Every single person has different tasks, errands and responsibilities that he has to attend to on a daily basis. From basic human needs, such as eating and sleeping, to activities that are more leisure orientated, such as enjoying a cup of coffee with friends, people spend their time in different ways.
It is human nature for a person to be inclined to engaging himself in the action which interests him the most. Hence, household chores hold little appeal, while catching up with friends is highly enjoyable. However, a wise person will prioritize and ensure that the most urgent of tasks are attended to first.
Read more: It's About Time!
The mother and father of Sayyidah Maryam ('alaihas salaam) were 'Imraan and Hannah. Before the birth of Maryam ('alaihas salaam), Hannah was unable to bear a child.
We often see the sign "Free Wi-Fi". In fact, we often search for this sign, as people fear becoming 'disconnected'. Whether in a hotel, airport, restaurant or anywhere else, this sign is a sure draw card, attracting people to the premises.
However, it is doubtful that any of us would have seen a sign saying "Wi-Fi Free", even though this is the sign that we all need to hang in our homes at the very least for the last ten days of Ramadhaan.
The last ten days of Ramadhaan are unlike the first twenty days. It is most probably during one of the odd nights of these ten days that Laylatul Qadr (the Night of Power) occurs which is more virtuous than a thousand months. Showing his Ummah the importance of these ten days, Rasulullah (sallallahu 'alaihi wasallam) exerted himself even further during this blessed period.


text:
Why power failure persists in Nigeria – Experts
By Tracenews December 8, 2022
There is no gain saying that the rate of electricity supply in Nigeria is in low rate despite the deregulation of the sector which accidentally gave option of privatization. The privatization gave change of name from National Electric Power Authority (NEPA) to Power Holding Company of Nigeria (PHCN) which also localized to different distributing companies in various states.
However, despite the change of name and different options considered and implemented, the situation seems to remain the same and the country moves in circles of incessant blackouts.
Speaking on problems and challenges leading to ineffective power supply in many communities across the country, Mr. Ade Oladejo, a retired defunct NEPA Staff, identified many challenges such as faulty generation of transmission, incompetent staff of energy companies, poor financial management on both part of the government and the companies that are managing the sector, vandalization of Gas pipelines, corruption, insincerity of those saddled with the responsibility of managing the electricity sector and above all, lack of maintenance culture which generally is affecting all sectors of government in Nigeria.
Oladejo said some of the transformers are not in good shape and the authority had continued managing them to the detriment of the innocent consumers who are not enjoying power services of the distribution companies despite the charges nailed on those consuming it.
His words: "Who are those companies managing our gas or electricity sector? What is their competence? Who are the owners of these companies? What is their management capacity? Do they have maintenance culture or capability to manage Transformers when they are faulty? What is the quality of the Transformers they supply to communities? What is the sincerity of the Government in ensuring quality Transformers are brought to various towns, villages and even cities? Is the staff competent enough to manage the faulty Transformers? Do the companies managing the power sector pay their workers desirable wages? All these are perplexing questions demanding for answers.
"I worked and retired at NEPA for 35 years. I have seen some of the issues or challenges confronting or behind the so-called reform of electricity sector in Nigeria. The ugly trend can be arrested if government is sincere enough in what they called privitazation.
"Some of these problems which I had earlier mentioned need to be addressed. As a developing nation, we must learn how to employ competent hands to manage the sector not necessarily on connection or whom you know because that is what is killing us today."
He said the government has not been sincere in the so-called privatization of Gas sector because those saddled with the management of the sector gave it out to incompetent hands or companies due to what they intend to benefit instead of looking for those who will properly manage the sector well and achieve desirable results of providing effective power supply to the poor citizens of Nigeria.
"You know corruption is a challenge and a big problem in this country; a country where right people are not placed in right positions or places; a country where many things seem not working; a country where everything seems to be possible without anybody saying something. We must address the fundamental issues before we can get to where we ought to be. Imagine exorbitant billing given to poor Nigerians for a light they do not consume. Most communities are in total darkness and yet they are being given crazy bills every month", he added.
According to him, many businesses are crumbling due to erratic power supply and there is urgent need to explore power generation options for the improvement of power capacity, reliability, efficiency and availability to consumers. This, he said, will be possible if government is sincere in ensuring that Nigerians enjoy regularly light and pay only for what they consume.
Oladejo, however, advised the government to ensure that those managing the sector are providing quality services by the way of ensuring that competent hands are employed as well as providing quality transformers to various communities that will not be overloaded and try to acquire transformers that have enough capacity to supply light to the people and consequently do away with obsolete ones.
Also speaking, Dr. Titus O. Ajewole, an Associate Professor in the Department of Electrical and Electronic Engineering, University of Osun State, Oshogbo (UNIOSUN), said with its direct influence on nations' educational and research development, industrialization and manufacturing strength, welfare and healthcare delivery, as well as agricultural and food security, stable supply of electricity is a key underlining pre-condition for national socio-economic growth.
However, he stressed, the collapse of national electric grid has become a re-occurring incident in Nigeria, thus making reliable delivery of electric power to consumers appear illusionary. He stated that it is on record that not less than 200 incidents of breakdowns have been recorded on the power system since the completion of the privatization of the national power industry in 2013.
Ajewole said: "This is a strong evidence that the unbundling of the industry has not yielded the expected result and the poor performance of the electric utility sector is continually taking a heavy toll on the economic development of the nation.
"By the privatization, the erstwhile monopoly of the Nigerian electric power market got the generation and distribution sub-systems of the grid ceded to a number of private investors, while the monopolistic and the state-ownership identities were retained for the transmission sub-system. In addition, there have been heavy investments on the industry by government and a number of private entities, yet the pre-privatization problems of the grid lingered.
"This disappointing trend is being prominently blamed on infrastructural dilapidations that affect the generation and the wheeling capacities of the sub-systems, pipeline vandalism that results in shortage of gas supply to thermal plants and prevailing energy market structure of the nation's electricity value-chain that does not yield adequate payback to the investors.:
He added that every one of the identified challenges that are currently bedeviling the electric power industry in Nigeria can be arrested with exertion of sincerely motivated and properly directed efforts.
Ajewole said there is a need for the government to create the political will and the strategy that can end the menace of pipeline vandalism that limits the functionality of gas-fired power generation plants. Also, infrastructural development for power supply must be attended to in a more strategic manner for the fact that the hitherto investments on the facilities have not been yielding result.
He pointed out that the expansion of transmission and distribution facilities need to continue for increased wheeling capacities, further investment to increase generation capacity should not be the priority as at the moment because this may lead to more downtime complications.
According to him, there must be a proper maintenance of the existing generation plants so that they can generate at their maximum installation capacities, as this is a better approach and this requires improved maintenance culture and practice.
The Senior Lecturer hinted that the review of the prevailing energy market structure in the country is highly necessary to ensure that investors are not running at loss, while on the other hand, the consumers too are not over-burdened.
He disclosed that proper metering and tariff approach is one of the important practices that can bring sanity into the practices of this kind of business, by which persistent energy theft and also estimated billing can be checkmated.
Ajewole was of the opinion that extensive deployment of renewable energy-based electric microgrid technology in Nigeria can bring enormous relief to the stressed grid structure. With regards to the emerging trend in power system development across the globe, electric microgrid systems are being employed for stand-alone, stand-by, grid-connected, co-generation or peak-shaving applications, he added.
"One of the realistic ways by which the grid challenge can be tackled is to increase the renewable energy quota in the national power generation mix since Nigeria is abundantly endowed with renewable energy resources that are yet to be adequately harnessed. Summarily, Nigerian electric power sub-sector has not been faring well for a number of decades.
"Privatization was purposed to salvage the industry, but the post-privatization occurrences, particularly repeated grid collapse, have shown that the industry keeps failing the country. Undoubtedly there is a need to re-strategize to have viable reliable electric utility.
"The solution lies in outright stoppage in vandalism of gas pipeline, strategic infrastructural development, review of market structure, including metering and tariff technique, as well as expansive deployment of electric microgrid technology." he stated.
Dr Muyideen Olalekan Lawal, a Senior Lecturer in the Department of Electrical and Electronic Engineering at UNIOSUN, also said power system is made of three sections: Generation, Transmission and Distribution, adding that these three sections have issues when it comes to Nigeria's power sector.
According to him, the power generation and available capacities of our gencos is far lesser than their installed capacities, just as he hinted that the generation sub-sector presently includes 23 grid-connected generating plants in operation with a total installed capacity of 10,396 MW, but with an available capacity of 6,056 MW. This, he said, amounts to 58.2% of the installed capacity.
Lawal said the main challenge facing generation, especially the gas thermal plants is the shortage of gas supplies, either due to scarcity or pipeline vandalization. He disclosed that out of the available capacity, 4000MW to 5000MW, is usually dispatched daily but this value is far lesser than what will be needed by a population of over 180 million people.
Lawal pointed out that distribution gets electricity to the end users and makes money for the other two sectors, adding that just like the transmission, there is a great amount of power loss in the distribution system.
"It is important to note that power loss is synonymous to money loss. Another way that this sector loses money is through excessive energy theft by users. So, there is great loss of money that's supposed to be used for the improvement of the system in Nigeria", he said, advising that government and those saddled with the duties of electricity sector need more sincerity.

redpajama_set_name: RedPajamaCommonCrawl


Sometime ago, I was having issues connecting to a site and I decided to temporary unblock DNS, but choosing the filtering level None from the ones available. When I resolved my issue, I went back to Custom, and I lots all the sites I block or allow traffic with.
I need to do the same, but I want to keep the list of sites somewhere in OpenDNS, so that I do not have to retype it again, which would be just too much work.
I have a dynamic ip address due to the internet provider i have.
It is not the concept of OpenDNS to change the settings so much often. If you want to have scheduled settings, you had to go for a Netgear router with LPC enabled.
I see the answers and I am still amazed that years pass by and OpenDNS does not provide a solution to this (to save the blocked content in a configuration file).
It is not that I would like to change or switch off on a regular basis. It is the fact that there are times things get blocked internally and the only way to make sure OpenDNS is not the cause of that is by disabling it, but that is the problem, because if one disables, then all individual pages and domain blocked are gone from OpenDNS and you have to type one by one. There is not even at least a kind of table input in which one could copy and past all the blocked sites, which increases the pain.
I will give an example that happened to me sometime ago. I believe I started having issues with skype of a similar product, email, I do not recall exactly, but the thing is that the software I was having issues with, was not actually calling a url in which one could see OpenDNS is blocking. It took me 1. loosing all the pages I had blocked in OpenDNS, to find out OpenDNS was the actual software blocking the application I was having issues with. 2. Having to retype one by one the entries to be blocked as they came up through time, because I did not take time to save them at least in a text file myself.
If OpenDNS chest up says they are preferred customer of so important companies, I mean, come on guys you can do it!!!
"the only way to make sure OpenDNS is not the cause of that is by disabling it"
"come on guys you can do it!!!"
No, I can't. I'm just a user like you. And I don't need the feature of saving the dashboard settings. And you don't need it either. You just didn't know.


Vehicle air conditioning systems are used to cool down the vehicle interior. They usually work on the basis of the recirculating air principle and aspirate the air to be cooled from the interior. The cold air generated in the air conditioning system is transported by a fan into the vehicle interior.
The refrigeration circuit to generate the cold air in the trainer ET 450 includes a compressor, a condenser with fan and an evaporator as air cooler with three-stage fan and expansion valve. All system components are typical elements used in vehicle technology. The air cooler with three-stage fan is e.g. equipped with typical air vents for the vehicle interior. This achieves a close proximity to practice.
The trainer operates with the 12VDC supply common in vehicles. Even the ignition lock function has been implemented to switch on the system. An electric motor drives the compressor via a V-belt and a magnetic coupling. The motor and thus the compressor is controlled freely in speed by a frequency converter to simulate the drive via the vehicle engine.
Important characteristic variables, such as pressure, temperature, flow rate and the power consumption of the compressor are displayed. As a particularity 8 connectable faults have been installed. The system is particularly suited for the training of motor mechanics.


GTB's Central Console is a centralized security and compliance management platform for GTB's Data Protection and Data Loss Prevention that WorksTM Platform.
By combining DLP and Insider Threat into a single agent and dashboard, GTB is the only solution which provides actionable, accurate data in real-time.
Centrally manage data security policies and controls across different operating environments, endpoints, applications, and cloud applications including unstructured, semi-structured and structured repositories or silos.
A true GR&C tool, GTB's Central Console Control Center provides enterprise data analytics and advanced enterprise report options. GTB's Central Console enables the management of advanced threat and data protection policies and controls across all endpoints, distributed environments including AWS / Azure, data silos, data repositories, cloud apps, services and storage, on-premises network and storage systems; while streamlining administration and providing more consistent policy enforcement.


Appeal from the United States Court of Federal Claims in No. 1:16-cv-00760-RHH, Senior Judge Robert H. Hodges, Jr.
Austin Tighe, Nix, Patterson & Roach, LLP, Austin, TX, argued for plaintiff-appellant.
Amber Beth Blaha, Environment and Natural Resources Division, United States Department of Justice, Washington, DC, argued for defendant-appellee. Also represented by Jeffrey H. Wood, Eric Grant, Matthew Littleton, Washington.
Before Newman, Dyk, and Taranto, Circuit Judges.
The Crow Creek Sioux Tribe ("Tribe") is a federally recognized Indian tribe. Its reservation is located in South Dakota along the Missouri River. The Tribe filed suit against the United States in the Court of Federal Claims ("Claims Court") seeking damages and declaratory and injunctive relief for the alleged taking of its water rights in violation of the Fifth Amendment, and for the alleged mismanagement of its water rights in violation of 25 U.S.C. § 162a(d)(8). The Claims Court dismissed the case for lack of subject-matter jurisdiction. We affirm, concluding that the Tribe has failed to establish, or even allege, that it has suffered the requisite injury in fact.
The Crow Creek Indian Reservation ("Reservation") was established in central South Dakota in 1863. The Missouri River overlies the Reservation's western boundary. See Act of Mar. 2, 1889, ch. 405, § 6, 25 Stat. 888, 889–90 (1889) (delineating boundaries of the Reservation).
Under the Supreme Court's decision in Winters v. United States, 207 U.S. 564, 28 S.Ct. 207, 52 L.Ed. 340 (1908), the creation of an Indian Reservation carries an implied right to unappropriated water "to the extent needed to accomplish the purpose of the reservation." Cappaert v. United States, 426 U.S. 128, 138, 96 S.Ct. 2062, 48 L.Ed.2d 523 (1976); see also United States v. New Mexico, 438 U.S. 696, 698–700, 98 S.Ct. 3012, 57 L.Ed.2d 1052 (1978). These reserved rights are known as Winters rights. They arise as an implied right from the treaty, federal statute, or executive order that set aside the reservation, and they vest on the date of the reservation's creation. See Winters, 207 U.S. at 576–77, 28 S.Ct. 207; Arizona v. California, 373 U.S. 546, 598, 83 S.Ct. 1468, 10 L.Ed.2d 542 (1963) (rejecting the argument that water rights were not reserved because the reservation was created by executive order, rather than treaty). The parties agree for purposes of the motion to dismiss that, pursuant to the Winters doctrine, the Tribe possesses a perfected right to sufficient water to fulfil the Reservation's purposes.
In June 2016, the Tribe filed suit in the Claims Court seeking at least $200 million in damages. The complaint began by describing various "Background Facts," including the establishment of the Reservation and the history of the Pick-Sloan Plan, a federal flood control project on the Missouri River, which involved the construction of the Fort Randall Dam and the Big Bend Dam in the mid-1900s.1 The complaint also mentioned a 1996 statute that established a new trust fund for the Tribe, funded with up to $27.5 million in hydroelectric-power revenue from the Pick-Sloan Plan, see Crow Creek Sioux Tribe Infrastructure and Development Trust Fund Act of 1996, Pub. L. No. 104-223, § 2(a)(7), 110 Stat. 3026, 3027 (1996); high-lighted a 2012 settlement between the Tribe and the United States unrelated to water rights; and emphasized the generally poor economic prospects of the Reservation.
The complaint then alleged that certain, unspecified acts and omissions by the United States—presumably including the continued operation of the dams—have taken the Tribe's "Winters reserved water rights" without just compensation in violation of the Fifth Amendment. J.A. 32. The complaint also alleged that the government breached its fiduciary duty to "[a]ppropriately manag[e] the natural resources located within the boundaries of Indian reservations," 25 U.S.C. § 162a(d)(8), "by the acts and omissions described hereinabove, including failing to protect, quantify, assert or record Plaintiff's water rights, and instead continuously diverting, retaining, and appropriating that water to others and to Defendant's own use," J.A. 31. The complaint did not allege that the government's actions deprived the Tribe of sufficient water to fulfill the reservation's purposes or that those actions would cause the Tribe to lack sufficient water in the future.
The United States filed a motion to dismiss pursuant to Rule 12(b)(1) of the Court of Federal Claims for lack of subject-matter jurisdiction. The Claims Court granted the motion, noting that Winters only entitles the Tribe to sufficient water to fulfill the Reservation's purposes and explaining that nothing in the complaint suggests that the Tribe is "experienc[ing] a shortage of water" or that its water supply from the Missouri River is or will be "insufficient for [the Tribe's] intended pursuits." Crow Creek Sioux Tribe v. United States, 132 Fed.Cl. 408, 410–11 (Fed. Cl. 2017). The Claims Court rejected the Tribe's argument that its Winters reserved water rights can be injured by any "taking or diverting [of] waters from the Missouri River," even if the diversion does not cause the Tribe to experience any water shortage. Id. at 410. The court also noted that, while 25 U.S.C. § 162a(d)(8) "does direct the government to manage the natural resources of Indian tribes," the statute "does not direct any specific actions to be taken by the government in that management." Id. at 411. The Claims Court therefore dismissed the suit for lack of subject-matter jurisdiction because it could not "identify an injury to the Tribe that has yet occurred." Id. In various places in the opinion, the Claims Court discussed the failure of the complaint to allege damages with particularity. Id. at 409–11.
The tribe timely appealed. We have jurisdiction under 28 U.S.C. § 1295(a)(3). In assessing a motion to dismiss for lack of subject-matter jurisdiction, we "must accept as true all material allegations of the complaint, and must construe the complaint in favor of the complaining party." Warth v. Seldin, 422 U.S. 490, 501, 95 S.Ct. 2197, 45 L.Ed.2d 343 (1975); see also Stephens v. United States, 884 F.3d 1151, 1155 (Fed. Cir. 2018).
The Tribe initially argues that the Claims Court erred in dismissing its action because the Tribe could not calculate damages. We agree with the Tribe that there is no need to allege details of the damages calculation in the complaint. But the Claims Court's decision, while it sometimes uses the word "damages," turns on the Tribe's underlying failure to allege an injury in fact. Indeed, the Claims Court concludes its opinion by stating that "[t]he jurisdictional problem ... arises from plaintiff's inability to identify an injury to the Tribe." Crow Creek Sioux Tribe, 132 Fed.Cl. at 411. We think the Claims Court was correct in dismissing the case for lack of subject-matter jurisdiction because the Tribe failed to sufficiently allege injury.
In order to bring suit in an Article III court, a plaintiff must establish constitutional standing. Lujan v. Defs. of Wildlife, 504 U.S. 555, 560, 112 S.Ct. 2130, 119 L.Ed.2d 351 (1992). "The Court of Federal Claims, though an Article I court ... applies the same standing requirements enforced by other federal courts created under Article III." Weeks Marine, Inc. v. United States, 575 F.3d 1352, 1358–59 (Fed. Cir. 2009) (quoting Anderson v. United States, 344 F.3d 1343, 1350 n.1 (Fed. Cir. 2003)). To establish constitutional standing, a "plaintiff must have (1) suffered an injury in fact, (2) that is fairly traceable to the challenged conduct of the defendant, and (3) that is likely to be redressed by a favorable judicial decision." Spokeo, Inc. v. Robins, ––– U.S. ––––, 136 S.Ct. 1540, 1547, 194 L.Ed.2d 635 (2016). Standing requires more than just a "keen interest in the issue." Hollingsworth v. Perry, 570 U.S. 693, 700, 133 S.Ct. 2652, 186 L.Ed.2d 768 (2013). It requires allegations that the plaintiff "personal[ly]" suffered a concrete and particularized injury in connection with the conduct about which he complains. Spokeo, 136 S.Ct. at 1548.
The Supreme Court has held that each element of standing "must be supported in the same way as any other matter on which the plaintiff bears the burden of proof." Lujan, 504 U.S. at 561, 112 S.Ct. 2130. With this in mind, we join the majority of our sister circuits in holding that the Supreme Court's "plausibility" requirement for facial challenges to claims under Rule 12(b)(6), as set out in Bell Atlantic Corp. v. Twombly, 550 U.S. 544, 570, 127 S.Ct. 1955, 167 L.Ed.2d 929 (2007), and Ashcroft v. Iqbal, 556 U.S. 662, 678, 129 S.Ct. 1937, 173 L.Ed.2d 868 (2009), also applies to facial challenges to subject-matter jurisdiction under Rule 12(b)(1).2 Thus, "[t]o survive a motion to dismiss [for lack of standing], a complaint must contain sufficient factual matter" that would plausibly establish standing if accepted as true. Iqbal, 556 U.S. at 678, 129 S.Ct. 1937 (citing Twombly, 550 U.S. at 570, 127 S.Ct. 1955). "Threadbare recitals of the elements of [standing], supported by mere conclusory statements, do not suffice." Id.
The question here is whether the Tribe has sufficiently alleged injury in fact, which the Supreme Court has characterized as "a hard floor of Article III jurisdiction." Summers v. Earth Island Inst., 555 U.S. 488, 497, 129 S.Ct. 1142, 173 L.Ed.2d 1 (2009). To establish injury in fact, "a plaintiff must show that he or she suffered 'an invasion of a legally protected interest' that is 'concrete and particularized' and 'actual or imminent, not conjectural or hypothetical.' " Spokeo, 136 S.Ct. at 1548 (quoting Lujan, 504 U.S. at 560, 112 S.Ct. 2130). The Tribe acknowledges that the Winters doctrine is the sole source of the legally protected interest asserted in this case—both for the takings claim and the statutory claim. Oral Arg. 00:30–00:50; J.A. 14. The question is whether the Tribe has sufficiently alleged injury to those rights.
The Tribe argues that various government actions and inactions with respect to the Missouri River, including the operation of the Pick-Sloan dams, constitute a taking of the Tribe's Winters water rights under the Fifth Amendment and a breach of the government's fiduciary duty under 25 U.S.C. § 162a(d)(8) to "appropriately manage[ ]" the Tribe's vested, Winters water rights, and there-by amount to an injury-in-fact. The Fifth Amendment's Takings Clause requires just compensation for the taking of property. Section 162a generally concerns the Secretary of the Interior's responsibility for management of Indian trust funds and expenditure of money collected from irrigation projects, but it also states that "[t]he Secretary's proper discharge of the trust responsibilities of the United States shall include ... [a]ppropriately managing the natural resources located within the boundaries of Indian reservations." 25 U.S.C. § 162a(d)(8). The Tribe's breach of trust claim is based on the view that its Winters water rights count as "natural resources" under § 162a(d)(8), and the government has a statutory duty to "appropriately manage" those Winters water rights.
While it is clear that the tribe possesses Winters rights, it is not clear whether those rights are protected by § 162a(d)(8). Because § 162a(d)(8) does not define "appropriate management" of natural resources and does not assign the Secretary any standards or specific obligations as to natural resources, the government argues that § 162a(d)(8) is not the kind of "specific rights-creating or duty-imposing statutory or regulatory prescription[ ]" required to support jurisdiction under the Indian Tucker Act. United States v. Navajo Nation, 537 U.S. 488, 506–07, 514, 123 S.Ct. 1079, 155 L.Ed.2d 60 (2003) (holding that the Indian Mineral Leasing Act does not give the Secretary sufficient specific responsibilities to support Indian Tucker Act jurisdiction). But we need not decide that question. If § 162a(d)(8) does not cover Winters rights, the Tribe has suffered no injury under the statute. And even if Winters rights are "natural resources" for purposes of the statute, the Tribe still has not established standing.
The problem is that the complaint fails to allege that the government action has caused injury to the Tribe's Winters rights. As discussed above, the Supreme Court held in Winters that the establishment of an Indian reservation impliedly reserves the amount of water necessary to fulfill the purposes of the reservation. 207 U.S. at 576–77, 28 S.Ct. 207. Winters arose out of a dispute between Indians residing on the Fort Belknap Reservation and upstream, non-Indian water users who had constructed dams diverting the water that otherwise would have flowed through the reservation. Id. at 565–67, 28 S.Ct. 207. The United States, in its capacity as trustee, sought to enjoin the diversions, but the upstream users claimed paramount water rights based on state water law that followed the prior-appropriation doctrine. Id. at 568–69, 28 S.Ct. 207. The Winters Court held that the Indians actually possessed the superior water right because the 1888 treaty establishing the Fort Belknap Reservation had also impliedly reserved water sufficient to fulfill the purposes of the reservation. Id. at 576–77, 28 S.Ct. 207. This implied water right was justified, in the Court's view, because Congress would have had no good reason to reserve land for Indians without also reserving their right to sufficient water for the reservation's purpose—which was, in that case, to encourage Indians to adopt an agricultural (and thus irrigation-dependent) way of life. Id. at 576, 28 S.Ct. 207.
The scope of Winters reserved water rights, like their existence, turns on the reservation's need for water. The amount of water reserved is "that amount of water necessary to fulfill the purpose of the reservation, no more." Cappaert, 426 U.S. at 141, 96 S.Ct. 2062; see also New Mexico, 438 U.S. at 700 n.4, 98 S.Ct. 3012; Arizona, 373 U.S. at 600–01, 83 S.Ct. 1468. In Winters itself, the purpose of the reservation was agricultural in nature, 207 U.S. at 576, 28 S.Ct. 207, but other cases have noted fishing and hunting as a purpose of the reservation as well, see United States v. Adair, 723 F.2d 1394, 1410 (9th Cir. 1983) (identifying Winters rights as to "a quantity of the water flowing through the reservation not only for the purpose of supporting Klamath agriculture, but also for the purpose of maintaining the [Klamath] Tribe's treaty right to hunt and fish on reservation lands").
Thus, water is only reserved for the Tribe under Winters "to the extent needed to accomplish the purpose of the reservation." Gila River Pima-Maricopa Indian Cmty. v. United States, 695 F.2d 559, 561 (Fed. Cir. 1982); see also Cappaert, 426 U.S. at 141, 96 S.Ct. 2062. The facts alleged in the complaint, taken as true, suggest that government action, including operation of the Pick-Sloan dams, generally affects water flows on the Missouri River. But the complaint does not allege that the amount of water flowing by the Reservation and available for the Tribe's use is insufficient to fulfill the purposes of the Reservation or will be insufficient in the future. The Tribe therefore has failed to allege injury in fact, as necessary to demonstrate standing.The Tribe argues that, because its Winters rights vested at the founding of the Reservation, any subsequent action affecting the waters of the Missouri River constitutes an injury of those rights, even if the action does not affect the Tribe's ability to draw sufficient water to fulfill the purposes of the Reservation. In the Tribe's view, "[w]hen the Government took and used the Tribe's water and water rights—whether the Tribe was using that water at the time or not, and despite the natural flow continuing along the river's banks—it breached its duty under 162a(d)(8) to appropriately manage the water, and alternatively, violated the Takings Clause by taking a fully vested property interest from the Tribe." Appellant Br. 34.
In so arguing, the Tribe appears to misunderstand what its water rights entail. As noted above, Winters, the sole source of the water rights asserted in this case, only entitles tribes to "that amount of water necessary to fulfill the purpose of the reservation, no more." Cappaert, 426 U.S. at 141, 96 S.Ct. 2062. And because water rights are usufructuary in nature—meaning that the property right "consists not so much of the fluid itself as the advantage of its use"—the Tribe has no right to any particular molecules of water, either on the Reservation or up- or downstream, that may have been used or diverted by the government. Casitas Mun. Water Dist. v. United States, 708 F.3d 1340, 1353 (Fed. Cir. 2013). The Tribe's Winters rights, which give the Tribe the right to use sufficient water to fulfill the purposes of the Reservation, simply cannot be injured by government action that does not affect the Tribe's ability to use sufficient water to fulfill the purposes of the Reservation. The complaint in this case does not allege that the challenged government action has such an effect.
Because the Tribe failed to allege an injury in fact, we affirm the Claims Court's dismissal for lack of subject-matter jurisdiction.
Construction of the dams resulted in the flooding of approximately 15,000 acres of the Reservation. To compensate the Tribe for this loss of land, Congress enacted two statutes by which the United States acquired the flooded land and paid the Tribe and its members more than $5 million total "in settlement of all claims, rights, and demands of" the Tribe "arising out of" dam construction. Act of Oct. 3, 1962, Pub. L. No. 87-735, § 1(a)(2), 76 Stat. 704, 704 (1962) (authorizing the acquisition of roughly 6,000 acres of Reservation land for the Big Bend project); Act of Sept. 2, 1958, Pub. L. No. 85-916, § 1, 72 Stat. 1766, 1766 (1958) (authorizing the acquisition of roughly 9,000 acres of Reservation land for the Fort Randall project).
See, e.g. Garling v. EPA, 849 F.3d 1289, 1293 n.3 (10th Cir. 2017); Hochendoner v. Genzyme Corp., 823 F.3d 724, 730 (1st Cir. 2016); Silha v. ACT, Inc., 807 F.3d 169, 173–74 (7th Cir. 2015); In re Schering Plough Corp. Intron/Temodar Consumer Class Action, 678 F.3d 235, 243–44 (3d Cir. 2012); Amidax Trading Grp. v. S.W.I.F.T. SCRL, 671 F.3d 140, 145 (2d Cir. 2011) (per curiam); White v. United States, 601 F.3d 545, 551–52 (6th Cir. 2010); Stalley v. Catholic Health Initiatives, 509 F.3d 517, 521 (8th Cir. 2007). We note that RCFC 12(b)(1) and FRCP 12(b)(1) are substantially the same for these purposes.


Fragrant Notes of Grass and Grapefruit Rind Compliment a Subtle Bready Malt Sweetness, Smooth and Crisp.
Earned the Verified Adventure (Level 11) badge! Earned the Fields of Gold (Level 4) badge!
Henning S.: ... direkt an der Quelle!
Earned the Bar Explorer (Level 51) badge! Earned the Fields of Gold (Level 2) badge!


text:
Precious Kofi
Full / Real Name: Nwabisa Precious Kofi
Born: 20 March 1987 (32 years old)
Precious Kofi is a South African actress best known for hosting her own TV show called Keeping it Real with Precious, from 2006-2007.
Precious was born in Alice in the Eastern Cape and grew up in Queenstown, Ciskei. When she started Primary School her and her family moved to Mandela Park, Hout Bay, Cape Town where she attended Korendal Primary School.
She finished Primary School in 2000 and did her high schooling at Camps Bay High where she finished matric in 2005.
While there she did Drama as a subject and was cast as a host in the TV show Hip 2B Square on SABC 2's Tube. In 2006 she was given her own talk show called The Precious Show, which became Keeping it Real with Precious for its second season.
A third season was made, called Keeping it Real, but it was not hosted by Precious.
Her other TV appearances include guest roles in Without a Trace, Tsha Tsha and Zone 14.
She was a host of SABC2's Summer Games in 2006. She was also cast as one of the lead voice characters (Keitu) in the animated series URBO: The Adventures Of Pax Africa, which premiered in South Africa on 30 September, 2006.
In 2007 she starred in the drama series Divers Down on SABC1, about a group of young recruits who join the Navy. The series premiered on Monday 5 February 2007.
She co-hosted the youth magazine programme EMS Volume 1 when it premiered on SABC1 on Tuesday 2 October, 2007.
In 2009 she hosted the docu-reality show Precious Africa, in which she travels to seven African countries to explore their culture.
In 2011 she co-hosted (with Sandile van Heerden) the first season of the magazine programme Mgongo, which aired on Mzansi Magic. She left the show after one season and was replaced by Lehasa Moloi when the show moved to e.tv in 2012.
Precious currently lives in Illovo, Johannesburg.
Television Roles
4Play: Sex Tips for Girls - Season 1
S'tha
Crazy Games - Season 1
Host - Herself
Divers Down - Season 1
Thami
Hip2b2 - Season 1
Presenter - Herself
Keeping it Real - Season 1
Life is Wild - Season 1
Mbali
Mgongo - Season 1
Precious Africa - Season 1


text:
This page has been archived and is no longer updated
nature.com homepage
Publications A-Z index
E-alert sign up
nature news home
Published online 4 August 2011 | Nature | doi:10.1038/news.2011.458
Brazil promises 75,000 scholarships in science and technology
3-billion-real investment aims to support students at home and abroad.
Elie Gardner
Brazil needs more science and engineering graduates, says science and technology minister Aloizio Mercadante.ANTONIO CRUZ/ABR
The Brazilian government has announced a plan to invest 3.16 billion real (R$; US$2.02 billion) in 75,000 science and technology scholarships by the end of 2014. The initiative, which will send students abroad as part of the government's Science Without Borders programme, was announced on 26 July. The government has challenged the private sector to contribute a further 25,000 scholarships.
Brazil boasts one of the world's 10 largest economies, and ranks 13th in scientific production, according to the Institute for Scientific Information in New York. The country's expanding economy has increased opportunities for scientific collaboration with other nations, and the country has need for chemists, physicists, computer scientists and engineers, says Carlos Henrique de Brito Cruz, director of FAPESP, the São Paulo state research foundation.
"This will have a major impact in allowing Brazilian kids to take their ideas to the limit."
Miguel Nicolelis
Duke University in Durham, North Carolina
Increases are expected particularly in the demand for engineers, with the football World Cup coming to Brazil in 2014, and the 2016 Summer Olympics set to be hosted in Rio de Janeiro. But there aren't enough students studying science and engineering to fill that demand. The number of engineering graduates grew by just 1% between 2001 and 2009, compared with 66% for arts graduates, says Aloizio Mercadante, the Brazilian minister of science and technology.
The new programme aims to address the shortage by focusing on engineering, health sciences, life sciences and technology. The scholarships will be awarded through the Ministry of Science and Technology's National Council for Scientific and Technological Development (CNPq) and the Ministry of Education's Federal Agency for the Support and Evaluation of Graduate Education (CAPES).
More than 34,000 scholarships will go to students in doctorate programmes. Aid will be also provided for researchers in postdoctoral positions, six-month internships and training for international companies. Just over one-third of the scholarships will be awarded to undergraduates undertaking one-year study-abroad programmes. The government also hopes to attract foreign scientists to Brazil, offering 390 three-year grants to visiting researchers.
The scientific community has welcomed the announcement, which comes after the government cut the science budget by 1 billion R$ in February. But Brito Cruz says that he is not paying too much attention to the actual number of scholarships. "If we manage to send [just] 8,000 or 10,000 good students to have some experience abroad it's going to be a good thing for Brazil," he says.
Mercadante says that the idea is to send students to top universities, mostly in the United States and United Kingdom — including Harvard University and the Massachusetts Institute of Technology in Cambridge, Stanford University in California and the University of Cambridge, UK. In all, there are 238 foreign universities involved in the scholarship programme; the institutes were selected on the basis of Times Higher Education World University Rankings and QS World University Rankings.
Most of these universities require students to speak English. This worries some Brazilians, who say that there is no culture of English-language learning outside the upper middle class. The Ministry of Education says that scholarship recipients will be selected on merit, using ministry-administered exams. Preference will be given to candidates with fluency in English or the language spoken at the host institution.
In a speech last week, Brazil's president Dilma Rousseff said the scholarships would also include criteria related to "gender and ethnicity", although the government has not released additional information to support this.
Private assistance
Miguel Nicolelis, co-director of the Center for Neuroengineering at Duke University in Durham, North Carolina, left Brazil in 1989 to pursue his dream of recording the electrical activity of hundreds of brain cells simultaneously. At the time, his country was plagued with hyperinflation, and he couldn't find public support or funding.
In today's very different landscape, Nicolelis says the study-abroad programme should help to stimulate creativity among Brazil's science students. "When you expose so many kids to a different culture, a different way of doing science, I am sure this will have a major impact in allowing them to take their ideas to the limit," he says.
He believes that this creativity will lead to innovation, an area where Brazil lags behind other nations. But the private sector needs to do more to help. According to statistics from the Brazilian Ministry of Science and Technology, in 2010 the Brazilian state and private sectors invested almost equally in research and development, whereas in China, a world leader in innovation, the private sector invests more than three times as much as the state.
It remains to be seen whether the Brazilian private sector will contribute the 25,000 extra scholarships requested by the government. In the meantime, Nicolelis has returned to his home country on a part-time basis. He directs the International Institute for Neuroscience of Natal, while keeping his position at Duke. He is certain that he will one day make a complete return to Brazil.
Commenting is now closed.
comments on this story
Stories by keywords
This article elsewhere
Blogs linking to this article
Add to Newsvine
Add to Twitter
Science safe in Brazil elections29 September 2010
High hopes for Brazilian science09 June 2010
nature jobs
Research Scientists in Multiple Fields
Oxford Suzhou Centre for Advanced Research
Deputy Director of Nanoscopy Center in SLST, ShanghaiTech
More science jobs
Nature Asia
RSS web feeds
About Nature News
Nature News Sitemap
© 2019 Nature is part of Springer Nature. All Rights Reserved.
partner of AGORA, HINARI, OARE, INASP, ORCID, CrossRef, COUNTER and COPE


text:
Q: Find keyword from a list in a page using BeautifulSoup Using Beautiful Soup, I'd like to detect porn keywords (that i get by concatening two lists of porn-keywords (one in french, the other in english) in a web page.
Here's my code (from BeautifulSoup find two different strings):
proxy_support = urllib.request.ProxyHandler(my_proxies)
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)
lst_porn_keyword_eng = str(urllib.request.urlopen("http://www.cs.cmu.edu/~biglou/resources/bad-words.txt").read()).split('\\n')
# the textfile starts with a LF, deleting it.
if lst_porn_keyword_eng[0] == "b\"":
   del lst_porn_keyword_eng[0]
lst_porn_keyword_fr = str(urllib.request.urlopen("https://raw.githubusercontent.com/darwiin/french-badwords-list/master/list.txt").read()).split('\\n')

lst_porn_keyword = lst_porn_keyword_eng + lst_porn_keyword_fr
lst_porn_keyword_found = []

with urllib.request.urlopen("http://www.example.com") as page_to_check:
     soup = BeautifulSoup(page_to_check, "html5lib")
     for node in soup.find_all(text=lambda text: any(x in text for x in lst_porn_keyword)):
          lst_porn_keyword_found.append(str(node.text))

return lst_porn_keyword_found

This code runs correctly but porn keyword are found even if they shouldn't be.
For instance, the text of the second node found in "http://www.example.com" is
This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.
And none of these words are in lst_porn_keyword

A: I replaced your lambda function with
def testfn(text):
    elms = list([x for x in lst_porn_keyword if x in text])
    if len(elms) > 0:
        print(f"found words {elms} in {text}")
    return len(elms)>0

calling soup.find_all(text=testfn) will result in the following output:
found words ['color', 'gin', '"'] in `
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    `
found words ['cum', 'ho'] in `This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.`

I think your problem is that the in keyword also works for partial words. E.g.:
"cum" in "document"
> True

A: Your soup.find_all() doesn't return the html but the css instead:
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }

The words "color", "gin", and the character " appear in lst_porn_keyword and on the css, which triggered your detection.
Partial words like "gin" in "margin" are also problematic using soup.findall(), consider using regular expressions with word delimiters like the example below:
import regex as re

for word in lst_porn_keyword:
    result = re.findall(fr"\W{word}\W", node)
    if len(result) > 0:
        print(f"detected in text: {word}")

redpajama_set_name: RedPajamaStackExchange


Get The Best Ideas of Home Interior Design about cordless lamps for living room uk%0a cordless lamps for living room uk%0a There are a lot of inspiration about home interior and house decorating ideas out there. But we try to give you some of our best photos gallery collection regarding cordless lamps for living room uk%0a that we get from various source. Hope you enjoy!


text:
West Papuan refugees in Papua New Guinea: on the way to citizenship
Posted on July 21, 2016 by AWPA Adelaide administrator
http://devpolicy.org/west-papuan-refugees-papua-new-guinea-way-citizenship-20160719/
4) West Papuan refugees in Papua New Guinea: on the way to citizenship?
By Jenny Munro on July 19, 2016
At Rainbow settlement in Port Moresby, 38 families of West Papuan heritage live in a drainage ditch approximately 100 metres wide by 200 metres long. To one side, the neighbours' retaining wall contains pipes which direct runoff water and rain directly into the settlement. On the other side of the settlement is a construction site that doubles as a soccer field for Rainbow's children. The houses are small structures built with a patchwork of materials that reveals the recent history of external engagement — tarps from the United Nations High Commissioner for Refugees (UNHCR), plywood from a church fundraiser, plastic chairs from a West Papuan who lives outside the settlement. In the context of increasing efforts from Papua New Guinea (PNG) authorities to register West Papuan refugees and provide citizenship status, this post flags some of the relevant historical context and reflects on current challenges. As Papua New Guineans including Oro Province Governor Gary Juffa have suggested, citizenship is not sufficient to improve West Papuan refugees' living conditions.
Over 100 West Papuan refugees have been living in Rainbow for the past eight years, since being evicted from 9 Mile settlement. According to one community leader, 22 babies were born to refugee families in the settlement in 2015. The children are entitled to access public school education and health services though their residency status remains ambiguous. But like other urban residents in Port Moresby's settlements, many children do not attend school because their parents struggle to afford sufficient food, clean clothes, transport or extra costs associated with school.
In Rainbow, the women are the primary income earners. They sell fish and shrimp at the local market near the settlement. A few of the middle-aged men, it was explained to me, had held government jobs but struggled with mental health effects of displacement, insecurity and what researchers have called 'sakit hati' — an Indonesian term that literally translates to 'heart sick' — but which also conveys anger and resentment (Rees and Silove 2011). These feelings interfered with the ability of some refugees to cope with daily life, and some men in the settlement left their jobs.
Community leaders also described feelings of resentment related to the failure of the PNG government to properly assist them to resettle. Specifically, these refugees want land. A community member passionately asserted, 'We don't belong in a drain'. They want to grow food for subsistence and for sale, to have sufficient space to be together as a community, and to establish a permanent connection in a cultural context where land is strongly associated with identity and status. Unfortunately, this particular desire makes the Rainbow refugees a lot like many other urban residents with insecure tenure in settlements in Port Moresby (Rooney 2015 [pdf]). As with urban settlers elsewhere in Melanesia, these are people whose rights to care, investment and protection from the state remain ambiguous (Keen and Barbara 2015 [pdf]).
Unlike Papua New Guineans in settlements, West Papuan refugees, mainly civilians and villagers who were not fighting against Indonesian rule, were displaced to PNG as Indonesia's military forces worked to eradicate Papuan resistance beginning in the 1960s. Over the years, the exodus is estimated to be about 13,000, most in 1984, when 11,000 crossed the border (Glazebrook 2014:2 [pdf]). Today there are an estimated 1500 West Papuans living in Port Moresby. Refugees may continue to see themselves as having unresolved land claims in West Papua. As one Rainbow community member said, 'In West Papua, I have land. I am a landowner, and I would like to go back to my land.' But that, he says, is impossible as long as Indonesia governs. PNG has struggled to implement a refugee policy and system, especially for West Papuans living outside the former UNHCR camp at East Awin in Western Province (Glazebrook 2014:1 [pdf]). Citizenship applications were criticised as prohibitively expensive, at 10,000 kina. In December 2015 the PNG government reported it was processing citizenship applications from 3000 refugees from East Awin, and the fee was waived. Recently, more statements have been made about the government's commitment to registering and providing citizenship to West Papuan refugees. However, some refugees in Port Moresby have questioned what difference this status will make in the absence of supports towards their basic needs. A leader at the Rainbow community remarked, 'I do not want citizenship unless the government gives us land'. The rights and treatment of West Papuans is a sensitive political issue in PNG, and policy towards these refugees has historically been affected by political consideration for the relationship with Indonesia. The permissive residency visa initially arranged for West Papuans at East Awin prohibited them from engaging 'directly or indirectly in any political activity that might affect the good relationship between the governments of PNG and Indonesia' (cited in Glazebrook 2014:3 [pdf]). PNG government leaders typically see Indonesia as an important economic and political ally, and Indonesia has been clear that it will reward governments that support its sovereignty in Papua. West Papuans in PNG carry with them experiences that cannot be depoliticised, but avoiding them because of what they might represent, voice or destabilise is in effect enacting another layer of violence. Perhaps the current mobilisation towards citizenship is an opportunity for the PNG government to acknowledge West Papuan refugees' experiences of past violence in Indonesia. This would be in keeping with both what West Papuan peace activists want and what Indonesian leaders agreed to in the 2001 law on Special Autonomy for Papua (Braithwaite et al. 2010:97). Politics writ large shapes the identity, sense of community and history of West Papuans in Rainbow, but the everyday politics of getting children to school, putting food on the table and keeping families healthy and together are equally valued. There is a need for research to reveal more about what policies and interventions will help alleviate their health, land, education and livelihood challenges, both as urban settlers and as political refugees. Following the unfolding story of registration for citizenship and changing immigration status for West Papuans in settlements also provides a unique opportunity to better understand how processes of documentation, recognition and dedicated attention could improve the circumstances of other Melanesians living in informal settlements in Port Moresby and beyond.
Jenny Munro is a Research Fellow with the State, Society and Governance in Melanesia (SSGM) Program at ANU. This post was originally published as SSGM In Brief 2016/19.
Reference Rees, S. and D. Silove 2011. Sakit Hati: A State of Chronic Mental Distress Related to Resentment and Anger amongst West Papuan Refugees Exposed to Persecution. Social Science & Medicine 73(1):103–10.


text:
خانه/edinburg escort service/Salem witch trials All of our editorial staff members will analyze the thing you've supplied and discover whether or not to change the article.
Salem witch trials All of our editorial staff members will analyze the thing you've supplied and discover whether or not to change the article.
Our publishers will review that which you've presented and determine whether to revise this article.
Salem Witch Studies – Kids Encyclopedia (Ages 8-11)
Salem witch studies – Student Encyclopedia (centuries 11 or more)
Salem witch studies, (June 1692–May 1693), in North american historical past, a number of research and persecutions that induced 19 found guilty "witches" is hanged and most various other suspects getting confined in Salem community inside the Massachusetts Bay nest (right now Danvers, Massachusetts).
Precisely what triggered the Salem witch trials?
In late 1600s the Salem Village community into the Massachusetts gulf Colony (currently Danvers, Massachusetts) was fairly smaller than average starting a time period of problems with little to no constitutional advice. There was a social divide relating to the leading groups and a split between groups which are for and against the village's newer pastor, Samuel Parris. After some little girls on the town (a couple of them relation of Parris) started explaining unusual habits and match, these were urged to recognize the person who received bewitched all of them. Their particular preliminary accusations gave method to trials, hysteria, and a frenzy that lead to more allegations, usually between the differing groups.
Amount individuals were killed inside Salem witch tests?
Towards the end from the Salem witch studies, 19 anyone have been hanged and 5 other folks have expired in custody. In addition, one would be hard pressed beneath weighty stones until they expired.
How did the Salem witch studies stop?
After weeks of informal hearings, Sir William Phips, governor regarding the Massachusetts gulf Colony, interceded to add some formality to the proceedings. During the after seasons a lot of studies were conducted a lot of individuals confined. Since the studies persisted, accusations lengthened beyond Salem town to bordering towns. After Governor Phips's girlfriend am implicated, the guy again interceded and ordered that a fresh the courtroom feel set up that would not just let so-called spectral evidence. By May 1693 everybody in custody under judgment of conviction or mistrust of witchcraft ended up pardoned by Phips.
Exactly what is the history of the Salem witch studies?
The hit-or-miss style when the Salem witch studies comprise conducted added to alterations in U.S. legal procedures, such as right to legitimate representation and cross-examination of accusers and the presumption that certain is harmless until proved bad. The Salem studies also continued getting a powerful metaphor for your anticommunist hearings led by U.S. Sen. Joseph McCarthy inside Red shock with the 1950s, famously as Arthur Miller's allegorical have fun with the Crucible (1953).
Witch hunts
The activities in Salem in 1692 were but one segment in an extended story of witch hunts that started in Europe between 1300 and 1330 and concluded in the latter 18th millennium (utilizing the previous regarded performance for witchcraft happening in Switzerland in Edinburg escort 1782). The Salem studies happened delayed inside series, as soon as the abatement regarding the European witch-hunt fervour, which peaked from your 1580s and '۹۰s on the 1630s and '۴۰s. Some three-fourths of these European witch hunts occurred in western Germany, the Low region, France, northern Italy, and Switzerland. The quantity of studies and executions varied reported on time and room, but it is generally speaking considered that some 110,000 persons overall had been tried for witchcraft and between 40,000 to 60,000 comprise completed.
The "hunts" happened to be work to identify witches instead pursuits of an individual who had been previously considered to be witches. Witches comprise known to be readers of Satan that has bought and sold their unique people for their aid. It has been considered that these people used demons to achieve enchanting deeds, people replaced from individuals to animal type or from just one personal type to a new, that animals behaved as their "familiar tones," and that they rode through the surroundings at night to classified meetings and orgies. You will find tiny doubt that many individuals managed to do worship the devil and try to train sorcery with unsafe motive. However, no one previously embodied the idea of a "witch" as earlier expressed.
The operation of identifying witches set out with doubts or rumours. Accusations then followed, often escalating to beliefs and executions. The Salem witch studies and executions came into being due to a variety of ceremony government, parents feuds, and hysterical kids, elements that unfolded in a vacuum cleaner of governmental council.
Place the market
There have been two Salems through the belated 17th 100 years: a bustling commerce-oriented harbor society on Massachusetts compartment named Salem location, which will advance into contemporary Salem, and, roughly 10 long distances (16 kilometers) inland from using it, a smaller, poorer growing neighborhood of some 500 individual acknowledged Salem town. The community itself experienced a noticeable personal partition which was made worse by a rivalry between its two trusted families—the well-heeled Porters, who had durable connectivity with Salem Town's rich companies, and the Putnams, who wanted better autonomy for its community and are the standard-bearers your less-prosperous grazing homes. Squabbles over assets comprise customary, and litigiousness had been rampant.


Don't see a time that works for your schedule?
Choose a time and location that works best for your schedule. Book a private or semi-private yoga session, for a personalized yoga experience at your desired destination.


text:
Kyrie Irving talks legacy, passion brooklyn nets city edition for game with ESPN
Photo by Stacy Revere/Getty Images
The Nets success in Milwaukee and Minneapolis is due to a number of factors, but one constant has been Kyrie Irving's game. After scoring 23 vs. the Bucks, he put up 26 vs. the Timberwolves. More importantly, he looked like he is already in mid-season form.
Irving also seems thoroughly committed to the game at hand and is talking more about his legacy. He turned 30 during last season and is now the father of three children. It's time.
"I have great aspirations of leaving a legacy in this league and however many years that takes me is — that's laid out [ahead of me], but in the meantime, I just want to build Derrick Rose | Dirk Nowitzki Jerseys with people in this industry and win together," Irving told Nick Friedell of ESPN Wednesday. "I want this to feel like a dream that we all can share. And that's not just only with my Nets, but people that we're going to be going against. It's going to be fun. It's going to be a fun ride. So I'm looking forward to that enjoyment as well, more importantly."
He also sees the same commitment up and down the roster and nike durant jersey staff directory.
"I'll tell you right now — it extends all the way up," Irving told ESPN. "From Joe [Tsai] all the way to the 16th guy on the team. We allNBA Toys can feel it because we all have a piece in our success. And we all have a piece in when we fail. So that accountability that we continue to hold for each other is definitely something that we're going to continue to build on, and I think the results will speak for themselves."
Irving spoke as well about his relationship with Ben Simmons who like him has been the center of controversy. He told Friedell about his advice.
"This is an emotional time in our world. People attack other people for what they believe in, their jobs, whatever it is. So harsh criticism is part of it, but what's justified is how you respond. And how you kevin durant adidas jersey deal with it. …" he said. "The moment he wakes up and he real kd nets jersey youth izes like, 'That's not actually my life. I have a loving, supportive system around me of people that care about me, and these are people that I can go to for honest answers.'"
Irving, of course, had a difficult season in 2021-22, playing only 29 games when he refused to get the COVID-19 vaccine despite a city mandate. He admits he made some mistakes, has some regrets but did not detail them.
"I'd be lying to you as a human being [if I said I didn't]," he tolNBA Vintage Clothing d Friedell about last season. "I think we all think about times we could have made better decisions, and times we wish we could have done things differently and I feel the same way at times throughout my life. … I legitimately just want to play the long game and not put too much pressure on myself or the people that I'm around."
He also talked about how much he missed the game when banished.
"I don't ever leave it. (Laughs). I don't ever leave it. I go everywhere with it," he said of the game.
Irving spoke as well about his contract situation. He's in the final year of his initial four-year deal signed in 2019. He could become a free agent in the summer … or he and the Nets could come to an agreement about an extension.
"Well, I'm staying patient and letting those things play out, honestly. Because the best thing I can do ri kevin durant shirt nets ght now is just build sustainable relationships and be there for people that go on the court and off the court," he said.
"And that's going to be a unique task this year. Eliminating those distractions of thinking about things that I know are either in the future or they are not, or hoping — I don't want to be in that phase. I just want to be present, live every day as God has given it to me kevin durant black jersey and legitimately just have fun with this profession.
"It's a heck of a business, ain't it?"
Kyrie Irving talks his future, advising Ben Simmons and turning down a big payday – Nick Friedell – ESPN
NBA on TNT: Tuesday night Luka Doncic vs. the Pelicans betting odds Kyrie Irving, Kevin Durant's combined 74 not enough in 134-124 loss to Grizzlies Live Thread: Brooklyn Nets at Memphis Grizzlies, 8:00 PM EST Long Island Nets to bring 17 playersNBA Shirts and Sweaters into campBlake Griffin Jerseys , including six returning players Post: Nets lost 30% of season ticket holders as prices soared, Kevin Durant sought trade Game 3: Nets face Grizzlies in first road test
One thought on "Kyrie Irving talks legacy, passion brooklyn nets city edition for game with ESPN"
bill bender says:
Very good sir, i love to read your blog
Previous post The word for Nets is 'unpredictable nets classic jersey ,' say TNT broadcasters
Next post Nets h durant brooklyn shirt ire NYCFC head trainer Jonathan Filipe
Previous post:The word for Nets is 'unpredictable nets classic jersey ,' say TNT broadcasters
Next post:Nets h durant brooklyn shirt ire NYCFC head trainer Jonathan Filipe


text:
Q: What is the best way to store user specific files in Wicket? I am creating a file that is user specific. This file is basically a results csv that is created with the option for the user to download or not. When the user leaves the page, or ends their session I want to be able to delete this file. What is the best way to handle this?
Currently I am using the File class for Java.
Thanks!

A: Wicket doesn't control destroying the session. It is the concern of the servlet container you are using.
If you want to create a file in Wicket and delete the file when the session is destroyed or user want logout, it has two parts:

*

*User logout (in Wikcet)
Store the file path or the file reference in the WebSession (Wicket)
Override the method invalidate() of your WebSession or AutheticatedWebSession, see http://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/protocol/http/WebSession.html#invalidate%28%29

*Session destroyed
Store the file path or the file reference into the container session and write your listener and add it to the your servlet context (e.g. tomcat using web.xml file).
See http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpSessionListener.html

A: You don't have to write a file in the first place. Create the content on the fly and stream it back to the client. Wicket has a few classes in the package org.apache.wicket.request.resource to help with that.
As a starting point, look at Wicket 6 resource management and Wicket 1.5 Mounting resources
You basically mount a resource in the WicketApplication.init():
mountResource("somePath/${param1}/${param2}", new SomeResourceReference());

Than the SomeResourceReference:
public class SomeResourceReference extends ResourceReference {

   @Override
   public IResource getResource() {
      return new SomeResource();
   }

}

And finally in SomeResource:
 public class SomeResource extends AbstractResource {

     @Override
     public AbstractResource.ResourceResponse
                   newResourceResponse(Attributes attributes) {

        // get the parameters
        PageParameters parameters = attributes.getParameters();
        final String param1 = parameters.get("param1").toStringObject();

         AbstractResource.ResourceResponse response
                           = new AbstractResource.ResourceResponse();

         response.setContentType("application/CSV");
         response.setCacheDuration(Duration.NONE);
         response.setCacheScope(WebResponse.CacheScope.PRIVATE);
         response.setContentDisposition(ContentDisposition.INLINE);

         response.setWriteCallback(new AbstractResource.WriteCallback() {

         @Override
         public void writeData(final Attributes attributes) throws IOException {
            // create your data here
            attributes.getResponse().write(dataAsString);
         }
        });

    return response;

     }

 }


ICS CEO Thomas Scheid will attend the 2013 World Summit for Education this month in Doha, Qatar, and its pre-conference meeting titled Global Educators' Workshop: Learning and Leading for the 21st Century.
Tom's visit to Qatar, from Oct. 27 – Oct. 31, is sponsored by Qatar Foundation International to explore how innovation and cross-cultural collaboration in education foster 21st-Century competencies.
The Global Educators' Workshop, hosted in cooperation with the Supreme Education Council of Qatar, convenes 30 select principals and vice principals from local Qatari schools with 12 of their counterparts from schools across the United States and Brazil.
While there, workshop participants will design an international learning community that promotes concrete collaborations between schools through the design and implementation of cross-cultural educational projects.
The 2013 World Summit for Education (WISE) is an annual three-day event and a leading international forum for innovation in education. It brings together more than 1,000 practitioners, decision-makers and thoughtful leaders from more than 100 countries and across multiple sectors.
Each year the Summit explores current educational challenges and highlights innovative solutions — with the aims of turning ideas into action and replicating proven good practices.
Update 1: An article in the Qatar Tribune reports on the ongoing conference.
Photo reprinted from Qatar Tribune. CEO Tom is listening intently on the right.
Update 2: You can also read all about CEO Tom's trip to Qatar for the 2013 World Innovation Summit for Education (WISE) in this feature at the South Philly Review.


text:
Rise of the Tomb Raider's Baba Yaga DLC launches next week
By Philip Kollar Jan 19, 2016, 12:00pm EST
Share All sharing options for: Rise of the Tomb Raider's Baba Yaga DLC launches next week
Baba Yaga: The Temple of the Witch, the first story-focused downloadable content for Rise of the Tomb Raider, will launch Tuesday, Jan. 26, on Xbox One, publisher Microsoft Studios announced today.
Notably, this DLC release comes just days before the scheduled release date for the Windows PC version of Rise of the Tomb Raider. Square Enix was unable to confirm to Polygon whether Baba Yaga will also be available on PC at the time of the port's launch.
Baba Yaga: Temple of the Witch will feature protagonist Lara Croft entering a strange new tomb. Therein, she will encounter new enemies, solve puzzles and fight through some wicked hallucinations, all while battling a seemingly supernatural force. Microsoft says the add-on will provide "hours of additional gameplay."
Baba Yaga is included as part of Rise of the Tomb Raider's $29.99 season pass. The first piece of season pass content, Endurance Mode, was made available last month. In Endurance Mode, players must manage Lara's warmth and access to resources to see how long they can keep her alive in the harsh wilderness. A third major piece of DLC, titled Cold Darkness Awakened, is expected later this year.
For more on Rise of the Tomb Raider, you can check out our review, or watch the debut trailer for Baba Yaga: The Temple of the Witch below.


Now, in the final installment of the series - just posted in our virtual museum - we follow Mr. Bug's fascinating, and at times complicated, journey to the silver screen against the backdrop of America's entry into World War II.
Find out "the rest of the story" HERE.
Or, start at the beginning with Part One and Part Two.
Mr. Bug Goes to Town, Part 2 - Making of the Movie!
Max Fleischer (right) next to the stand that holds the cels, located in front of the 3D set.
Part One of our three-part series on the making of Mr. Bug Goes to Town, looked at the creation of the Mr. Bug story-line. After months of developing and discarding a variety of concepts, the studio finally had a wholly original story-line. Set in the modern era, Mr. Bug Goes to Town involved an entire colony of anthropo-morphic insects, a city full of humans, and the towering landscape of New York City.
In Part Two, we look at the actual making of Mr. Bug Goes to Town, and how the staffers of Fleischer Studios made use of innovative techniques and ground-breaking inventions (many of which they themselves had developed) to bring this beautiful film to life.
Part two of this fascinating exhibit includes rare and wonderful home movie footage of the Mr. Bug animators at play, the story behind the Studio's hangnail insurance policy and so much more!
Mr. Bugs Goes to Town now in the Museum!
With the commercial success of Gulliver's Travels in December 1939 and Fleischer Studios with its 700-plus staff members now happily settled in Florida, the Fleischers were eager to get started on their second full-length feature film. And Paramount, with optimism riding high even before Gulliver's opening, had already given them the green light. By March 1939, Fleischer Studios was already hard at work developing ideas for their next feature-length film!
This month we're sharing the amazing, often surprising, journey of this remarkable film from its initial conception all the way through to opening night.


September 18, 2018 – With only a short drive to his home event at the New Jersey Motorsports Park (NJMP), Dylan Tavella entered the penultimate weekend in the F4 United States Championship Powered by Honda with improvement on his mind. Competing in his Ride With Dylan branded machine with the Miller Vinatieri Motorsports squad, Tavella had his best event behind the wheel of a race car since graduating from karts at the end of the 2017 season.
Unfortunately, a strong run in race three would be negated for Tavella after contact while running in the fourth position cut a rear tire and forced him to the pits.
With the final round of the F4 United States Championship Powered by Honda on the grand stage at the Circuit of the Americas next month, Tavella and Ride With Dylan will compete in front of the teams, drivers and spectators of the Formula One World Championship.
For more information on Ride With Dylan, please visit www.RideWithDylan.com or any of the social media pages on Facebook, Twitter, Instagram and LinkedIn.