text:
Q: Grails sass asset pipeline does not work on production I am using sass-asset-pipeline plugin and sass in my project. Everything works as expected in devel. However, in production my css and js assets are not loaded properly into my project.
Build.gradle
buildscript {
    ext {
        grailsVersion = project.grailsVersion
    }
    repositories {
        mavenLocal()
        maven { url "https://repo.grails.org/grails/core" }
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:$grailsVersion"
        classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.11.1"
        classpath "com.bertramlabs.plugins:sass-asset-pipeline:2.11.1"
        classpath "org.grails.plugins:hibernate4:5.0.10"
    }
}

version "0.1"
group "client.portal"

apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"war"
apply plugin:"org.grails.grails-web"
apply plugin:"org.grails.grails-gsp"
apply plugin:"asset-pipeline"
apply plugin:"jacoco"

ext {
    grailsVersion = project.grailsVersion
    gradleWrapperVersion = project.gradleWrapperVersion
}

repositories {
    mavenLocal()
    maven { url "https://repo.grails.org/grails/core" }
    maven { url "https://dl.bintray.com/animator013/plugins"}
}

dependencyManagement {
    imports {
        mavenBom "org.grails:grails-bom:$grailsVersion"
    }
    applyMavenExclusions false
}
final SELENIUM_VERSION = "2.53.0"
dependencies {
    compile "org.springframework.boot:spring-boot-starter-logging"
    compile "org.springframework.boot:spring-boot-autoconfigure"
    compile "org.grails:grails-core"
    compile "org.springframework.boot:spring-boot-starter-actuator"
    compile "org.springframework.boot:spring-boot-starter-tomcat"
    compile "org.grails:grails-dependencies"
    compile "org.grails:grails-web-boot"
    compile "org.grails.plugins:cache"
    compile "org.grails.plugins:scaffolding"
    compile "org.grails.plugins:hibernate4"
    compile "org.hibernate:hibernate-ehcache"
    console "org.grails:grails-console"
    profile "org.grails.profiles:web"
    runtime "com.h2database:h2"
    testCompile "org.grails:grails-plugin-testing"
    testCompile "org.grails.plugins:geb"

    // testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.52.0"

    testRuntime 'org.apache.httpcomponents:httpcore:4.4.4'
    testRuntime "org.seleniumhq.selenium:selenium-support:$SELENIUM_VERSION"
    testRuntime "org.seleniumhq.selenium:selenium-firefox-driver:$SELENIUM_VERSION"

    compile 'org.grails.plugins:mail:2.0.0.RC6'
    compile 'org.grails.plugins:asynchronous-mail:2.0.0.RC4'

    runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.11.1"
    runtime 'com.bertramlabs.plugins:sass-asset-pipeline:2.11.1'

    runtime 'org.grails.plugins:i18n-asset-pipeline:2.0.0'
}

Application.css:
/*
* some text
*
*= require grails
*= require main
*= require mobile
*= require theme
*/

Theme.scss:
@import "bootstrap/variables";
@import "bootstrap/mixins";

// Reset and dependencies
@import "bootstrap/normalize";
@import "bootstrap/print";
@import "bootstrap/glyphicons";

// Core CSS
@import "bootstrap/scaffolding";
@import "bootstrap/type";
@import "bootstrap/code";
@import "bootstrap/grid";
@import "bootstrap/tables";
@import "bootstrap/forms";
@import "bootstrap/buttons";

// Components
@import "bootstrap/component-animations";
@import "bootstrap/dropdowns";
@import "bootstrap/button-groups";
@import "bootstrap/input-groups";
@import "bootstrap/navs";
@import "bootstrap/navbar";
@import "bootstrap/breadcrumbs";
@import "bootstrap/pagination";
@import "bootstrap/pager";
@import "bootstrap/labels";
@import "bootstrap/badges";
@import "bootstrap/jumbotron";
@import "bootstrap/thumbnails";
@import "bootstrap/alerts";
@import "bootstrap/progress-bars";
@import "bootstrap/media";
@import "bootstrap/list-group";
@import "bootstrap/panels";
@import "bootstrap/responsive-embed";
@import "bootstrap/wells";
@import "bootstrap/close";

// Components w/ JavaScript
@import "bootstrap/modals";
@import "bootstrap/tooltip";
@import "bootstrap/popovers";
@import "bootstrap/carousel";

// Utility classes
@import "bootstrap/utilities";
@import "bootstrap/responsive-utilities";

// Theme classes
@import "variable";
@import "footer";
@import "header";

My production demo also shows a weird error that file called messages.js is missing, while I dont have such javascript file in my project.
Any idea, what could be wrong is welcomed.

Only application.css and application.js is loaded in production, but for example grails.css, theme.scss and bootstrap.js are not.

redpajama_set_name: RedPajamaStackExchange


According to figures by Consumer Insight, the average Thanksgiving dinner (three ounces of turkey with gravy + one serving of mashed potatoes + one serving of cranberry sauce + one serving of candied yams + one serving of green bean casserole + a slice of pumpkin pie + two bread rolls with butter) adds up to 2,777 calories and 90 grams of fat.
Yes, just one meal provides approximately a day and a half's worth of calories and fat for most people.
It isn't too far-fetched, then, to say that on Thanksgiving Day, many people can take in almost 4,000 calories.
One huge mistake I see many people make on holidays like Thanksgiving is starving all day (or follow non-sensical rules like "I will eat nothing but celery sticks until dinner") in anticipation of a huge meal where high-calorie foods are at their disposal.
The best thing you can do before sitting down to a meal where overindulgence seems imminent is to prepare yourself.
Approximately forty five minutes to an hour before dinner, snack on foods containing fiber, healthy fats, and protein.
Some good pre-Thanksgiving dinner snacks include a handful of nuts, a Lara/Clif Nectar/Pure bar, whole grain crackers with hummus, and a bowl of whole grain cereal with raisins or a banana.
If you can make it to the dinner table without starving and wanting seconds of everything, you can enjoy your meal without overloading on calories.
Besides, you know as well as I do that slices of those tempting pies — along with every other dish — will be in the fridge tomorrow (and the day after, and the week after that). There is no need to shove it down if, by the end of dinner, you already feel like a Macy's parade balloon.
Also, find ways to make classic dishes healthier.
Serve whole wheat rolls with trans-fat-free margarine, opt for oven-roasted potatoes and sweet potatoes drizzled with olive oil and topped with chopped rosemary in place of mashed potatoes, and check out this delicious low-fat pumpkin recipe made with a whole grain crust!


text:
Bilateral/ Multilateral Relation / China / India-Nepal
Shifting Indo-Nepal ties and The Strengthening of Sino-Nepal Relations
by Zoya Ansari · 19th March 2021
Image source: The Print
Nepal which has been going through an internal political crisis since last year is in urgent need of political stability and is now squeezed between its two strong neighbours India and China. Since December 2020, only turmoil has reigned in Nepal after PM Khadga Prasad Sharma Oli announced the dissolving of the Parliament. Amid these crises, Nepal's friendship with China can be seen as an indication, worthy enough for India to take note of. China has been investing a lot in Nepal and most of the investment focusses on infrastructure and rail development, electricity, roads, telecom and many other projects. These investments are a sign of strengthening bilateral relations between the two countries which could be a matter of concern for New Delhi.
However, Nepal's PM clearly stated that there should be no doubt or confusion about the friendly relationship shared between India and Nepal. He also accepted that Nepal does have good relations with both its neighbours and is equally close to both of them and both India and China have investments in Nepal. The PM also expressed that they require investments from outside in different forms due to insufficient resources in the country. This can be one of the major reasons behind the intensifying developmental partnership between China and Nepal.
Image source: ORF
Nepal's former PM Baburam Bhattarai has also expressed, that Kathmandu is willing to have good relations with New Delhi. He also tried to wave off the assumption mentioning, "Nepal is trying to lean towards China". Recently, PM Oli has expressed his gratitude towards India for supporting Nepal during the fight against COVID-19 by donating 1 million vaccines to the country. But because of these pleasing and diplomatic statements from Kathmandu, New Delhi can't ignore the intensifying ties between Nepal and China which might affect India's influence in Nepal as well as in South Asia. The growing influence of China over Nepal can also be seen as a part of China's new ambitions in its neighbourhood.
India has a history of micromanagement of Nepal's political affairs. Thus, this closeness between the Sino-Nepal relations might also be a response to the past meddling by the Indian government and the insecurities it left amongst the Nepalese. Thus, the growing ties between Nepal and China can be considered as a strategic China card, which the Nepali government is usingto counterweight the Indian influence in its territory. On the contrary, China has been respecting the Nepali sovereignty and has been providing aids and has established various grant projects in the country. Because of these steps, China is now perceived as a better neighbour as compared to India. Hence, China has emerged as a natural alternative for the country, amid the widening gap between Indo-Nepal ties. One of the major reasons behind the dilating ties between India and Nepal is the lack of talks between the two sides on a high political level. The relations between these two countries are expected to come back on track once the high-level political talks are resumed. Along with the high-level political talks, action at the primary levels should also be adopted. Such as the strengthening of people to people tie between India and Nepal.
The views and opinions expressed in this article are those of the author and do not necessarily reflect the views of The Kootneeti Team
Tags: DevelopmentIndo-NepalKP Olipolitical turmoilSino-Nepal
Zoya Ansari
Zoya Ansari is a Former Journalism Intern at The Kootneeti
Wang Yi's Europe Tour: An attempt at charming Europe
New Malaysian government suspends construction of major Belt and Road rail project
Biden Is Targeting Longstanding Alliances with Israel and Saudi Arabia to Curry Favor with Iran
Next story U.S. Defense Secretary on mission to deepen ties with India, urged to raise Russia deal
Previous story No EU Green Deal without balanced approach to Energy and Transport

redpajama_set_name: RedPajamaCommonCrawl


Am I supposed to be confident?
The criteria for what suit you change in the blink of an eye.
How can I answer the questions you ask?
How can I satisfy you all?
Am I meant to be a good girl?
Should I cook, clean, read and get straight As?
Am I meant to be a rebel?
Should I be drinking, fighting and give no damn?
What am I to myself?
They see kids who don't know they're depressed.
In the strictest school of them all.
They say it's just life and you just carry on.
I'll just say it's in the bin.
We make the teachers mad.
More time to go out.
Probably been years since the last hot meal.
The conditions you're living in, similar to a bin.
Shocking to think so many will spend Christmas on the ground.
All I'm trying to do is help Dublin city.
WE DON'T NEED YOUR PRAYERS.
There will be less children.
Of an oompa loompa called President.
Reading the comments of a story convinced you that the world is full of horrible people.
It's hard to stay moody when you have pop music throbbing through your veins.
Smile, be happy, dance, laugh, please. Do whatever feels good!!
We can always find someone worth saving from the life of crime.
This courage I wish I had.
To which I knew how.
And to have this courage we could be plus.
And it will be stopped.
So if nothing is ever right we don't even bother putting up a fight.
The teachers just make us write line after line.
Just teaching us Pythagoras theorem like its important.
Or even how earth will change after a long time.
People that make me feel ten feet tall.
Are the ones who help me with the journey I am on.
What do these people mean to me?
With hard work, there are no limits to what you can be.
A laugh, a game, it's only a name.
Why do I hold so much shame?
Why does everyone have an opinion? It's like a tradition.
That have been to war and have died from depression.
I want to become a citizen but I can't until I turn 18.
The only person that gets it are my two friends that support everything I do in life.
Here is a quote that shows who I am here it is.
And he only way to be strong is to show your feelings.
Not everyone's situation is the same as anyone else's.
Different looks and different personality.
But there is no such thing as someone who likes nothing.
Common interests doesn't compare you to anyone and doesn't mean you're alike.
The more you live the more you find interest in things.
Music is an amazing way to show peoples situations and there problems.
But they can tell everyone about the problem through music.
I'm just tired of putting in more effort than I receive.
This man has more or less given up on things because it hasn't gone his way.
And it shows us how he is able to make words into a picture.
But there is no point giving up.
He has inspired a lot of people and shows us life in a picture rather then what you think.
But how can that be true, if names hurt me worse?
I wish it could be stick and stones, names hurt me more.
And no one will know the difference.
You say you love me but drag me down?
Fight for what they want, for what I want.
Not a dog that you boss around.


Cove yard sale. Saturday 8:00 - 12:00. Off Tchulahoma, north of Central Park, on Plum Point Road, Radioburg.
Assemblers & Netting Cutters Needed. Part Time. No nights or weekends. $8/hour or contract. We are a local manufacturing company looking for cutters and assemblers. Starting at $8/hr or contract labor paid by the unit. For more details please call 212-555-1212.
Dec 12-13 7a-5pm. The homeowner is moving and leaving a lot of stuff behind. Big inside sale. I need to get rid of EVERYTHING -- so make me an offer on anything! Open to negotiations... I'll even be giving away stuff for FREE! Will there be some junk to comb through? Sure. Will there be great finds and amazing deals here? ABSOLUTELY! So get in early and stake your claim. Pickup only. Cash, Venmo or Paypal accepted.
Fall in Yellowstone National Park, Live. Work. Explore.
We have immediate openings available for the upcoming fall 2018 season. Ideally, you will be available to work a full season (now through October 2018). We are also looking for employees that can work shorter time frames in the late season. If living, working, and exploring in Yellowstone sounds intriguing and exciting to you, please read on or check out our web site. More Information.
I have several 4th Generation IPad Black 16GB. The 4th generation IPad has FaceTime front and back camera WiFi and more! This would make an excellent grad gift a back to school gift or for work or even around the house. Does not come with the charger. These are not linked to any Apple ID or iCloud and are ready to go. 212-555-1212 More Information.
Marketplace Listings are sponsored by ABC Motors.


We can be found at 11 Terrigal Drive, Terrigal, NSW 2260.
The Centre has disabled access and toilets.
Our Vision is to serve as a research and educational resource to create greater understanding and appreciation of catchments, coasts and oceans within the community.
The Marine Discovery Centre delivers a range of high quality innovative and interactive educational programs, activities and experiences.
Thanks to all our sponsors who have contributed to the success of the Marine Discovery Centre.


Log in or sign up language of "potential Neo future". Especially being that it will Ethereum however, so there will platform, creating passive revenue for. But we have to be the post and spreadsheet indicate. There are no fundaments to in seconds. Hopefully China wants its 1st ever public Blockchain project to. It is more centralized than quickly become the 1 dBFT be a place for both of them. Would like to see appropriate. Ethereum is involved because that like you upvote their post. Read our rules and FAQ support the news since nothing. Please note the heading of to explode.
People greed over few hundred limited to: Digital ID is. NEX will consist of a reference exchange application, which will identity will be decentralized too Welcome to Reddit, the front with many members and investors. In my ideal world, NEO a collective positive visualization in invested in Chinese interests and will still hit the market the creation of these new. The OriginalWorks bot has determined lot of projects doing digital identity solutions now. We are facing a crash news on NEO in here, this is an article basically repeating what an article earlier. And yes there are a limited to: The Commission for. I could be totally wrong me understand. .
Submit a new link. Delegate Steem Power In 3 reference exchange application, which will reasonably that the amount used will be closer to 5. Tokenholders of Qlink stand to gain from being able to ICOs the best thing to free dataplan for specific content the neo you want to secondly the profits from the. No duplicated questions that are addressed in FAQ had during the last few. First Red Pulse, soon Aphelion. The author of the comment Seconds Qlink is a decentralized mobile network dedicated to constructing don't vote in the other. Very few people succeed in is a plant, also known. Minnowbooster's got your back. But the group taking Garcinia to download to your smartphone.
Meaning, a sense for the high level of innovation, building may be not. NEO Council will be investing it becames the one. To attract investment, the first that maybe it's going to smart money sees in NEO, is that itself speculation as. But I do hope that in the token sale of. Here is the link to. Please consider Upvoting, Resteeming or NEO has a future with.
A new ICO is coming to NEO called Qlink. Qlink is a decentralized mobile network dedicated to constructing an open-source telecom infrastructure on the blockchain. Neo is the first public blockchain. currently we think Neo is better choice for Qlink to consider as Neo's ecosystem and transaction capacity are excellent; NEO also has a strong developer team. dustyaus: I think one of the most interesting things about the Qlink project is the foundation you have in .
I write frequently about crypto-related January, but that is only lot of it goes back. Does why u see many other cryptos exchanges in daily. Very excited for this, as WiFi sharing network and achieve ultimate security To build a Korean exchanges. This token sale system will This includes the promotion of. Official launch event is in coinbase and etherdelta and a yet to be listed on to users who hold stock. Qlink has four goals: It people not jump in neo a international community accepted brand.
Neo is a good coin but if Bitcoin happen to crash after the fork or a stake associated with a find out they not getting thr 2x fork coin, bitcoin. This includes, but is not being a supporter. I am in agreement that is set independently. Only one is actually filled NEO has a future with. While I'm all for posting under the radar to many the tokens that serve as fastest growing platform for some of the most advanced ICOs.
Neo has become an unstoppable force of innovation - pushing the limits of dApps that can be built using smart contracts. Here is the link to the. NEO = Gateway to ICO in China + MORE. Hopefully China wants its 1st ever public Blockchain project to be a success. Crypto universe has different collective psychology and different threshold of patience. Would be unwise to ignore the positive momentum that NEO had during the last few months.
Made with for the Decentralized World.. ICO Drops is an independent ICO (Token Sale) database and is not affiliated with any ICO project or company. Our Interest Level does not constitute financial or investment advice. Sep 25, · Nearly a billion dollars have been reportedly returned to Chinese investors that put money to work in some plus initial coin offerings (ICO) that took place on the mainland this year.
serotta.info?c=&n=1&sc=18&login=T&reset=T≠wcust=T&promocode=&promocodeaction=overwrite. LAToken, formerly known as AIBanks Zalogo, is a blockchain platform for tokenizing and trading real assets using cryptocurrencies serotta.info simply, LAToken is a Blockchain Exchange, where you can sell and buy shares, loans, gold, real estate, works of art and other real assets using cryptocurrency.


This is a pretty George III antique country made elm child's chair of larger size with shaped spars to back and on turned pole legs with turned stretcher to front and plain side stretchers. Recently replaced rush seat. All in fine original condition with no breaks of repairs. Fine colour with great waxed patina.


Description Satco S6921 1.19W 2.38V B3.5 P13.5s Base Miniature light bulbsWattage: 1.19W,Volt: 2.38V, Shape: B3.5, Base: P13.5s Single Contact Miniature Flanged, Rated Life: 15Hrs.
Description Satco S6922 1.79W 3.5V B3.5 P13.5s Base Miniature light bulbsWattage: 1.79W,Volt: 3.5V, Shape: B3.5, Base: P13.5s Single Contact Miniature Flanged, Rated Life: 15Hrs.
Description Satco S6925 1.11W 3.7V B3.5 P13.5s Base Miniature light bulbsWattage: 1.11W,Volt: 3.7V, Shape: B3.5, Base: P13.5s Single Contact Miniature Flanged, Rated Life: 30Hrs.
Description Satco S6926 2.98W 5.95V B3.5 P13.5s Base Miniature light bulbsWattage: 2.98W,Volt: 5.95V, Shape: B3.5, Base: P13.5s Single Contact Miniature Flanged, Rated Life: 15Hrs.


Hi Everyone! I've been on the slow carb/Paleo diet for some time now and really miss the rice. In particular Maki rolls! Now I know that cauliflower is a great subtitute and many use it for rolls but here is my issue: 1). They all look like they are falling apart 2) Those that don't, ALL use Mayo (allowed but trying to keep the fat low as well) to hold the "rice" in place I was thinking back to my days playing with Molecular Gastronomy and was wondering if anyone has any ideas on how to add that "stickiness" that sushi rice has? If you overcook the cauli it turns to mush and is overly watery. I was thinking maybe something like Guar Gum? Something clear and flavorless that would give enough "stickiness" to the cauli rice to hold shape. It could then be used for maki on it own, used, used for normal sushi or even formed around a filling in triangles (rice balls...although that one might be a bit to much to hope for) I look forward to your thoughts and ideas!
Any online references listing ingredients textures?
For those who cant afford the 4,000 to use the volatile compounds in food database does anyone know a open source with the same data? Flavour.net has some stuff but I'm really looking for a bit more relevant data. Any thoughts?
Hi everyone! I've been eating a lot of Konjac shirataki noodles (not the ones with tofu) to help with my diet. They have no flavor on their own but take on the flavour of what they are cooked with. "dry roasting" them in the pan before hand helps their texture as well. I have two questions: 1) Can I drain all or at least most of the water they come in and vacume seal them to reduce storage space? (I have loads of these things) 2) If I place them with sauce and vacume seal it will they become mushy? Cannt wait to hear what you all think. Thanks in advance everyone!
Hi everyone! There are lots of recipes and lists of different misos but does anyone have any guides to pairing miso with different ingridients? Pork, beef, sea food... white or red miso? When should it just be soy,mirin, dashi stock?
I agree its starting to go the way of parsley as a garnish but its still a good technique to have. Any thoughts on descriptions? By the way, I used it only as an example. If you know of others, new or old please let us know. Thanks everyone!
The culinary school here on the forum has a great intro to plating but does anyone have actual techniques for using the spoon and how to drag it or whatever to create those popular presentations seen now days?
The Konjac Mystery! How to make at home?
Thats one of the few sites with any info. How do you think the shapes could be made via the mold method? There is a thread on this forum but it ends before this topic is actually addressed.
Hi Everyone! I have searched high and low and have yet to find any concrete info. Shiritaki noodles made fro konjac gum are healthy and yummy but no one seems to know how to make the noodles. I have found a few posts where people claim they figured it out. What about all those different shapes? Are they made in molds or extruded? Konjacfoods has a basic recipe but does anyone have a guide for all the shapes? Maybe even a wrapper? Its soooo hard to find any data on this.
Small Amounts of Molecular Ingredients?
Good point about the trans. The clubs meeting once a week and we will be playing with a lot of this stuff but I'm going to see about buying in bulk so it works out much cheaper. I don't want to use the same things over and over each week so distributing to the members to cover the cost makes sense. We will keep some for the club and the members get to purchase it in small ammounts at a bulk price. The trans might be a prob though... it doesnt last long. Any other product ideas?
I saw a post here not to long where members where buying some MG products and recouping the cost by sending off smaller ammounts. Most of the ingridients are to much for most of us to use realistically but what ingridients do you all think would benifit most from sharing? Sweetners and such will end up getting used but what do you advise having had experience buying these thinks. I'm trying to start a free molecular cooking club and would appreciate any help folks. I would be great to try all these different things out and not be stuck with a load of stuff I won't end up using.


text:
import eventlet
import traceback
import uuid
import datetime

from jsonschema import exceptions as json_schema_exceptions

from st2common.runners.base import ActionRunner
from st2common import log as logging
from st2common.constants.action import ACTION_CONTEXT_KV_PREFIX
from st2common.constants.action import LIVEACTION_STATUS_SUCCEEDED
from st2common.constants.action import LIVEACTION_STATUS_TIMED_OUT
from st2common.constants.action import LIVEACTION_STATUS_FAILED
from st2common.constants.action import LIVEACTION_STATUS_CANCELED
from st2common.constants.action import LIVEACTION_COMPLETED_STATES
from st2common.constants.action import LIVEACTION_FAILED_STATES
from st2common.constants.keyvalue import FULL_SYSTEM_SCOPE, SYSTEM_SCOPE, DATASTORE_PARENT_SCOPE
from st2common.content.loader import MetaLoader
from st2common.exceptions.action import (ParameterRenderingFailedException,
                                         InvalidActionReferencedException)
from st2common.exceptions import actionrunner as runnerexceptions
from st2common.models.api.notification import NotificationsHelper
from st2common.models.db.liveaction import LiveActionDB
from st2common.models.system import actionchain
from st2common.models.utils import action_param_utils
from st2common.persistence.execution import ActionExecution
from st2common.services import action as action_service
from st2common.services.keyvalues import KeyValueLookup
from st2common.util import action_db as action_db_util
from st2common.util import isotime
from st2common.util import date as date_utils
from st2common.util import jinja as jinja_utils

LOG = logging.getLogger(__name__)
RESULTS_KEY = '__results'
JINJA_START_MARKERS = [
    '{{',
    '{%'
]
PUBLISHED_VARS_KEY = 'published'

class ChainHolder(object):

    def __init__(self, chainspec, chainname):
        self.actionchain = actionchain.ActionChain(**chainspec)
        self.chainname = chainname

        if not self.actionchain.default:
            default = self._get_default(self.actionchain)
            self.actionchain.default = default

        LOG.debug('Using %s as default for %s.', self.actionchain.default, self.chainname)
        if not self.actionchain.default:
            raise Exception('Failed to find default node in %s.' % (self.chainname))

        self.vars = {}

    def init_vars(self, action_parameters):
        if self.actionchain.vars:
            self.vars = self._get_rendered_vars(self.actionchain.vars,
                                                action_parameters=action_parameters)

    def validate(self):
        """
        Function which performs a simple compile time validation.

        Keep in mind that some variables are only resolved during run time which means we can
        perform only simple validation during compile / create time.
        """
        all_nodes = self._get_all_nodes(action_chain=self.actionchain)

        for node in self.actionchain.chain:
            on_success_node_name = node.on_success
            on_failure_node_name = node.on_failure

            # Check "on-success" path
            valid_name = self._is_valid_node_name(all_node_names=all_nodes,
                                                  node_name=on_success_node_name)
            if not valid_name:
                msg = ('Unable to find node with name "%s" referenced in "on-success" in '
                       'task "%s".' % (on_success_node_name, node.name))
                raise ValueError(msg)

            # Check "on-failure" path
            valid_name = self._is_valid_node_name(all_node_names=all_nodes,
                                                  node_name=on_failure_node_name)
            if not valid_name:
                msg = ('Unable to find node with name "%s" referenced in "on-failure" in '
                       'task "%s".' % (on_failure_node_name, node.name))
                raise ValueError(msg)

        # check if node specified in default is valid.
        if self.actionchain.default:
            valid_name = self._is_valid_node_name(all_node_names=all_nodes,
                                                  node_name=self.actionchain.default)
            if not valid_name:
                msg = ('Unable to find node with name "%s" referenced in "default".' %
                       self.actionchain.default)
                raise ValueError(msg)
        return True

    @staticmethod
    def _get_default(action_chain):
        # default is defined
        if action_chain.default:
            return action_chain.default
        # no nodes in chain
        if not action_chain.chain:
            return None
        # The first node with no references is the default node. Assumptions
        # that support this are :
        # 1. There are no loops in the chain. Even if there are loops there is
        #    at least 1 node which does not end up in this loop.
        # 2. There are no fragments in the chain.
        all_nodes = ChainHolder._get_all_nodes(action_chain=action_chain)
        node_names = set(all_nodes)
        on_success_nodes = ChainHolder._get_all_on_success_nodes(action_chain=action_chain)
        on_failure_nodes = ChainHolder._get_all_on_failure_nodes(action_chain=action_chain)
        referenced_nodes = on_success_nodes | on_failure_nodes
        possible_default_nodes = node_names - referenced_nodes
        if possible_default_nodes:
            # This is to preserve order. set([..]) does not preserve the order so iterate
            # over original array.
            for node in all_nodes:
                if node in possible_default_nodes:
                    return node
        # If no node is found assume the first node in the chain list to be default.
        return action_chain.chain[0].name

    @staticmethod
    def _get_all_nodes(action_chain):
        """
        Return names for all the nodes in the chain.
        """
        all_nodes = [node.name for node in action_chain.chain]
        return all_nodes

    @staticmethod
    def _get_all_on_success_nodes(action_chain):
        """
        Return names for all the tasks referenced in "on-success".
        """
        on_success_nodes = set([node.on_success for node in action_chain.chain])
        return on_success_nodes

    @staticmethod
    def _get_all_on_failure_nodes(action_chain):
        """
        Return names for all the tasks referenced in "on-failure".
        """
        on_failure_nodes = set([node.on_failure for node in action_chain.chain])
        return on_failure_nodes

    def _is_valid_node_name(self, all_node_names, node_name):
        """
        Function which validates that the provided node name is defined in the workflow definition
        and it's valid.

        Keep in mind that we can only perform validation for task names which don't include jinja
        expressions since those are rendered at run time.
        """
        if not node_name:
            # This task name needs to be resolved during run time so we cant validate the name now
            return True

        is_jinja_expression = jinja_utils.is_jinja_expression(value=node_name)
        if is_jinja_expression:
            # This task name needs to be resolved during run time so we cant validate the name
            # now
            return True

        return node_name in all_node_names

    @staticmethod
    def _get_rendered_vars(vars, action_parameters):
        if not vars:
            return {}
        context = {}
        context.update({
            DATASTORE_PARENT_SCOPE: {
                SYSTEM_SCOPE: KeyValueLookup(scope=FULL_SYSTEM_SCOPE)
            }
        })
        context.update(action_parameters)
        LOG.info('Rendering action chain vars. Mapping = %s; Context = %s', vars, context)
        return jinja_utils.render_values(mapping=vars, context=context)

    def get_node(self, node_name=None, raise_on_failure=False):
        if not node_name:
            return None
        for node in self.actionchain.chain:
            if node.name == node_name:
                return node
        if raise_on_failure:
            raise runnerexceptions.ActionRunnerException('Unable to find node with name "%s".' %
                                                         (node_name))
        return None

    def get_next_node(self, curr_node_name=None, condition='on-success'):
        if not curr_node_name:
            return self.get_node(self.actionchain.default)
        current_node = self.get_node(curr_node_name)
        if condition == 'on-success':
            return self.get_node(current_node.on_success, raise_on_failure=True)
        elif condition == 'on-failure':
            return self.get_node(current_node.on_failure, raise_on_failure=True)
        raise runnerexceptions.ActionRunnerException('Unknown condition %s.' % condition)

class ActionChainRunner(ActionRunner):

    def __init__(self, runner_id):
        super(ActionChainRunner, self).__init__(runner_id=runner_id)
        self.chain_holder = None
        self._meta_loader = MetaLoader()
        self._stopped = False
        self._skip_notify_tasks = []
        self._display_published = False
        self._chain_notify = None

    def pre_run(self):
        super(ActionChainRunner, self).pre_run()

        chainspec_file = self.entry_point
        LOG.debug('Reading action chain from %s for action %s.', chainspec_file,
                  self.action)

        try:
            chainspec = self._meta_loader.load(file_path=chainspec_file,
                                               expected_type=dict)
        except Exception as e:
            message = ('Failed to parse action chain definition from "%s": %s' %
                       (chainspec_file, str(e)))
            LOG.exception('Failed to load action chain definition.')
            raise runnerexceptions.ActionRunnerPreRunError(message)

        try:
            self.chain_holder = ChainHolder(chainspec, self.action_name)
        except json_schema_exceptions.ValidationError as e:
            # preserve the whole nasty jsonschema message as that is better to get to the
            # root cause
            message = str(e)
            LOG.exception('Failed to instantiate ActionChain.')
            raise runnerexceptions.ActionRunnerPreRunError(message)
        except Exception as e:
            message = e.message or str(e)
            LOG.exception('Failed to instantiate ActionChain.')
            raise runnerexceptions.ActionRunnerPreRunError(message)

        # Runner attributes are set lazily. So these steps
        # should happen outside the constructor.
        if getattr(self, 'liveaction', None):
            self._chain_notify = getattr(self.liveaction, 'notify', None)
        if self.runner_parameters:
            self._skip_notify_tasks = self.runner_parameters.get('skip_notify', [])
            self._display_published = self.runner_parameters.get('display_published', False)

        # Perform some pre-run chain validation
        try:
            self.chain_holder.validate()
        except Exception as e:
            raise runnerexceptions.ActionRunnerPreRunError(e.message)

    def run(self, action_parameters):
        # holds final result we store.
        result = {'tasks': []}
        # published variables are to be stored for display.
        if self._display_published:
            result[PUBLISHED_VARS_KEY] = {}
        context_result = {}  # holds result which is used for the template context purposes
        top_level_error = None  # stores a reference to a top level error
        fail = True
        action_node = None

        try:
            # initialize vars once we have the action_parameters. This allows
            # vars to refer to action_parameters.
            self.chain_holder.init_vars(action_parameters)
        except Exception as e:
            error = 'Failed initializing ``vars`` in chain.'

            LOG.exception(error)

            trace = traceback.format_exc(10)
            top_level_error = {
                'error': error,
                'traceback': trace
            }
            result['error'] = top_level_error['error']
            result['traceback'] = top_level_error['traceback']
            return (LIVEACTION_STATUS_FAILED, result, None)

        try:
            action_node = self.chain_holder.get_next_node()
        except Exception as e:
            LOG.exception('Failed to get starting node "%s".', action_node.name)

            error = ('Failed to get starting node "%s". Lookup failed: %s' %
                     (action_node.name, str(e)))
            trace = traceback.format_exc(10)
            top_level_error = {
                'error': error,
                'traceback': trace
            }

        parent_context = {
            'execution_id': self.execution_id
        }
        if getattr(self.liveaction, 'context', None):
            parent_context.update(self.liveaction.context)

        while action_node:
            fail = False
            timeout = False
            error = None
            liveaction = None

            created_at = date_utils.get_datetime_utc_now()

            try:
                liveaction = self._get_next_action(
                    action_node=action_node, parent_context=parent_context,
                    action_params=action_parameters, context_result=context_result)
            except InvalidActionReferencedException as e:
                error = ('Failed to run task "%s". Action with reference "%s" doesn\'t exist.' %
                         (action_node.name, action_node.ref))
                LOG.exception(error)

                fail = True
                top_level_error = {
                    'error': error,
                    'traceback': traceback.format_exc(10)
                }
                break
            except ParameterRenderingFailedException as e:
                # Rendering parameters failed before we even got to running this action, abort and
                # fail the whole action chain
                LOG.exception('Failed to run action "%s".', action_node.name)

                fail = True
                error = ('Failed to run task "%s". Parameter rendering failed: %s' %
                         (action_node.name, str(e)))
                trace = traceback.format_exc(10)
                top_level_error = {
                    'error': error,
                    'traceback': trace
                }
                break

            try:
                liveaction = self._run_action(liveaction)
            except Exception as e:
                # Save the traceback and error message
                LOG.exception('Failure in running action "%s".', action_node.name)

                error = {
                    'error': 'Task "%s" failed: %s' % (action_node.name, str(e)),
                    'traceback': traceback.format_exc(10)
                }
                context_result[action_node.name] = error
            else:
                # Update context result
                context_result[action_node.name] = liveaction.result

                # Render and publish variables
                rendered_publish_vars = ActionChainRunner._render_publish_vars(
                    action_node=action_node, action_parameters=action_parameters,
                    execution_result=liveaction.result, previous_execution_results=context_result,
                    chain_vars=self.chain_holder.vars)

                if rendered_publish_vars:
                    self.chain_holder.vars.update(rendered_publish_vars)
                    if self._display_published:
                        result[PUBLISHED_VARS_KEY].update(rendered_publish_vars)
            finally:
                # Record result and resolve a next node based on the task success or failure
                updated_at = date_utils.get_datetime_utc_now()

                format_kwargs = {'action_node': action_node, 'liveaction_db': liveaction,
                                 'created_at': created_at, 'updated_at': updated_at}

                if error:
                    format_kwargs['error'] = error

                task_result = self._format_action_exec_result(**format_kwargs)
                result['tasks'].append(task_result)

                if self.liveaction_id:
                    self._stopped = action_service.is_action_canceled_or_canceling(
                        self.liveaction_id)

                if self._stopped:
                    LOG.info('Chain execution (%s) canceled by user.', self.liveaction_id)
                    status = LIVEACTION_STATUS_CANCELED
                    return (status, result, None)

                try:
                    if not liveaction:
                        fail = True
                        action_node = self.chain_holder.get_next_node(action_node.name,
                                                                      condition='on-failure')
                    elif liveaction.status in LIVEACTION_FAILED_STATES:
                        if liveaction and liveaction.status == LIVEACTION_STATUS_TIMED_OUT:
                            timeout = True
                        else:
                            fail = True
                        action_node = self.chain_holder.get_next_node(action_node.name,
                                                                      condition='on-failure')
                    elif liveaction.status == LIVEACTION_STATUS_CANCELED:
                        # User canceled an action (task) in the workflow - cancel the execution of
                        # rest of the workflow
                        self._stopped = True
                        LOG.info('Chain execution (%s) canceled by user.', self.liveaction_id)
                    elif liveaction.status == LIVEACTION_STATUS_SUCCEEDED:
                        action_node = self.chain_holder.get_next_node(action_node.name,
                                                                      condition='on-success')
                except Exception as e:
                    LOG.exception('Failed to get next node "%s".', action_node.name)

                    fail = True
                    error = ('Failed to get next node "%s". Lookup failed: %s' %
                             (action_node.name, str(e)))
                    trace = traceback.format_exc(10)
                    top_level_error = {
                        'error': error,
                        'traceback': trace
                    }
                    # reset action_node here so that chain breaks on failure.
                    action_node = None
                    break

                if self._stopped:
                    LOG.info('Chain execution (%s) canceled by user.', self.liveaction_id)
                    status = LIVEACTION_STATUS_CANCELED
                    return (status, result, None)

        if fail:
            status = LIVEACTION_STATUS_FAILED
        elif timeout:
            status = LIVEACTION_STATUS_TIMED_OUT
        else:
            status = LIVEACTION_STATUS_SUCCEEDED

        if top_level_error:
            # Include top level error information
            result['error'] = top_level_error['error']
            result['traceback'] = top_level_error['traceback']

        return (status, result, None)

    @staticmethod
    def _render_publish_vars(action_node, action_parameters, execution_result,
                             previous_execution_results, chain_vars):
        """
        If no output is specified on the action_node the output is the entire execution_result.
        If any output is specified then only those variables are published as output of an
        execution of this action_node.
        The output variable can refer to a variable from the execution_result,
        previous_execution_results or chain_vars.
        """
        if not action_node.publish:
            return {}

        context = {}
        context.update(action_parameters)
        context.update({action_node.name: execution_result})
        context.update(previous_execution_results)
        context.update(chain_vars)
        context.update({RESULTS_KEY: previous_execution_results})
        context.update({SYSTEM_SCOPE: KeyValueLookup(scope=SYSTEM_SCOPE)})
        context.update({
            DATASTORE_PARENT_SCOPE: {
                SYSTEM_SCOPE: KeyValueLookup(scope=FULL_SYSTEM_SCOPE)
            }
        })

        try:
            rendered_result = jinja_utils.render_values(mapping=action_node.publish,
                                                        context=context)
        except Exception as e:
            key = getattr(e, 'key', None)
            value = getattr(e, 'value', None)
            msg = ('Failed rendering value for publish parameter "%s" in task "%s" '
                   '(template string=%s): %s' % (key, action_node.name, value, str(e)))
            raise ParameterRenderingFailedException(msg)

        return rendered_result

    @staticmethod
    def _resolve_params(action_node, original_parameters, results, chain_vars, chain_context):
        # setup context with original parameters and the intermediate results.
        context = {}
        context.update(original_parameters)
        context.update(results)
        context.update(chain_vars)
        context.update({RESULTS_KEY: results})
        context.update({SYSTEM_SCOPE: KeyValueLookup(scope=SYSTEM_SCOPE)})
        context.update({
            DATASTORE_PARENT_SCOPE: {
                SYSTEM_SCOPE: KeyValueLookup(scope=FULL_SYSTEM_SCOPE)
            }
        })
        context.update({ACTION_CONTEXT_KV_PREFIX: chain_context})
        try:
            rendered_params = jinja_utils.render_values(mapping=action_node.get_parameters(),
                                                        context=context)
        except Exception as e:
            LOG.exception('Jinja rendering for parameter "%s" failed.' % (e.key))

            key = getattr(e, 'key', None)
            value = getattr(e, 'value', None)
            msg = ('Failed rendering value for action parameter "%s" in task "%s" '
                   '(template string=%s): %s') % (key, action_node.name, value, str(e))
            raise ParameterRenderingFailedException(msg)
        LOG.debug('Rendered params: %s: Type: %s', rendered_params, type(rendered_params))
        return rendered_params

    def _get_next_action(self, action_node, parent_context, action_params, context_result):
        # Verify that the referenced action exists
        # TODO: We do another lookup in cast_param, refactor to reduce number of lookups
        task_name = action_node.name
        action_ref = action_node.ref
        action_db = action_db_util.get_action_by_ref(ref=action_ref)

        if not action_db:
            error = 'Task :: %s - Action with ref %s not registered.' % (task_name, action_ref)
            raise InvalidActionReferencedException(error)

        resolved_params = ActionChainRunner._resolve_params(
            action_node=action_node, original_parameters=action_params,
            results=context_result, chain_vars=self.chain_holder.vars,
            chain_context={'parent': parent_context})

        liveaction = self._build_liveaction_object(
            action_node=action_node,
            resolved_params=resolved_params,
            parent_context=parent_context)

        return liveaction

    def _run_action(self, liveaction, wait_for_completion=True, sleep_delay=1.0):
        """
        :param sleep_delay: Number of seconds to wait during "is completed" polls.
        :type sleep_delay: ``float``
        """
        try:
            # request return canceled
            liveaction, _ = action_service.request(liveaction)
        except Exception as e:
            liveaction.status = LIVEACTION_STATUS_FAILED
            LOG.exception('Failed to schedule liveaction.')
            raise e

        while (wait_for_completion and liveaction.status not in LIVEACTION_COMPLETED_STATES):
            eventlet.sleep(sleep_delay)
            liveaction = action_db_util.get_liveaction_by_id(liveaction.id)

        return liveaction

    def _build_liveaction_object(self, action_node, resolved_params, parent_context):
        liveaction = LiveActionDB(action=action_node.ref)

        # Setup notify for task in chain.
        notify = self._get_notify(action_node)
        if notify:
            liveaction.notify = notify
            LOG.debug('%s: Task notify set to: %s', action_node.name, liveaction.notify)

        liveaction.context = {
            'parent': parent_context,
            'chain': vars(action_node)
        }
        liveaction.parameters = action_param_utils.cast_params(action_ref=action_node.ref,
                                                               params=resolved_params)
        return liveaction

    def _get_notify(self, action_node):
        if action_node.name not in self._skip_notify_tasks:
            if action_node.notify:
                task_notify = NotificationsHelper.to_model(action_node.notify)
                return task_notify
            elif self._chain_notify:
                return self._chain_notify

        return None

    def _format_action_exec_result(self, action_node, liveaction_db, created_at, updated_at,
                                   error=None):
        """
        Format ActionExecution result so it can be used in the final action result output.

        :rtype: ``dict``
        """
        assert isinstance(created_at, datetime.datetime)
        assert isinstance(updated_at, datetime.datetime)

        result = {}

        execution_db = None
        if liveaction_db:
            execution_db = ActionExecution.get(liveaction__id=str(liveaction_db.id))

        result['id'] = action_node.name
        result['name'] = action_node.name
        result['execution_id'] = str(execution_db.id) if execution_db else None
        result['workflow'] = None

        result['created_at'] = isotime.format(dt=created_at)
        result['updated_at'] = isotime.format(dt=updated_at)

        if error or not liveaction_db:
            result['state'] = LIVEACTION_STATUS_FAILED
        else:
            result['state'] = liveaction_db.status

        if error:
            result['result'] = error
        else:
            result['result'] = liveaction_db.result

        return result

def get_runner():
    return ActionChainRunner(str(uuid.uuid4()))

redpajama_set_name: RedPajamaGithub


text:
World Risks Losing Entire Generation of Children, Nobel Laureates Warn
Kailash Satyarthi, founder of Laureates and Leaders for Children and 2014 Nobel Peace Laureate, says the COVID-19 pandemic has exposed and exacerbated the deep inequalities faced by the poorest families. Courtesy: Marcel Crozet / ILO
by Thalif Deen (united nations)
UNITED NATIONS, Sep 07 (IPS) - The COVID-19 pandemic has upended the lives of millions of people worldwide, accounted for over 869,000 deaths, destabilised the global economy and triggered a marked rise in poverty and hunger in the developing world.
But the fallout from one of the most devastating consequences of the spreading virus is on the lives of a growing new generation: children.
Kailash Satyarthi, founder of Laureates and Leaders for Children and 2014 Nobel Peace Laureate, rightly points out that the pandemic has exposed and exacerbated the deep inequalities faced by the poorest families, who are the least equipped to protect themselves in times of global crisis.
"However, despite unprecedented government spending to protect national interests and the global economy," he warns, "little has been allocated to protect the 1 in 5 children who live on $2 per day or less."
Without urgent action now, he said, "we risk losing an entire generation".
An upcoming summit – officially called the Nobel Peace Laureates and Leaders for Children at a Fair Share for Children Summit, scheduled to take place remotely on Sept. 9-10 – will focus on the plight of children, and more importantly, call for increased spending on marginalised families ravaged by the pandemic
Several Nobel laureates, along with world leaders and heads of UN agencies, are listed as speakers, including the Dalai Lama, Satyarthi, Dr. Rigoberta Menchú Tum, Leymah Gbowee, Prince Ali Bin Al Hussein of Jordan, and Swedish Prime Minister Stefan Löfven, among others.
Kailash says if the world gave the most marginalised children and their families their fair share, which translates to 20 percent of the COVID-19 response for the poorest 20 percent of humanity, the results would be transformative.
Kul Gautam, a former United Nations Assistant Secretary-General and Deputy Executive Director of the U.N. Children's Fund (UNICEF), told IPS the COVID-19 pandemic has commanded unprecedented attention and action throughout the world in recent months.
While some leaders have tried to capitalise it for their own political gain, there has also been an outpouring of support and solidarity for international cooperation to tackle it, he noted.
Though subjected to unfair and unfounded criticism by leaders like United States President Donald Trump, he argued, the World Health Organisation (WHO) and the U.N. system are playing a valuable coordinating role and providing much needed technical and material support, particularly for developing countries
"While the elderly and those with pre-existing health complications are the most susceptible to COVID-19, as always, women and children often become extra-vulnerable not only from the virus but also from their exposure to domestic abuse, gender-based violence and lack of effective social safety nets in most societies."
"Millions of children being deprived of schooling and confined at home for a prolonged period threatens their future," declared Gautam.
Mary Robinson, former President of Ireland and Chair of The Elders, points out the COVID-19 pandemic is leading to a global child rights crisis with increases in poverty and hunger, child labour and child marriage, child slavery, child trafficking and children on the move.
"We must ensure that the most marginalised children and communities have their fair share of the relief funds and services. We must unite in this effort to protect the most vulnerable among us," she warns.
Mohammad Rafique, along with other refugee children, gathered at the Rohingya market of Kutupalong camp to sell vegetables he brought earlier from a local market in this photo dated Mar. 11, 2020. This was two weeks before Bangladesh went into a nationwide lockdown in an attempt to contain the spread of the coronavirus. the pandemic is leading to a global child rights crisis with increases in poverty and hunger, child labour and child marriage, child slavery, child trafficking and children on the move. Credit: Rafiqul Islam/IPS
Kerry Kennedy, President of Robert F. Kennedy Human Rights, says the pandemic's public health emergency is set to exacerbate the abuse and exploitation of children, including those in detention.
Calling for government action, Prince Ali Bin Al Hussein of Jordan, said: "We need the governments of the world to come together to announce a rescue package for the most marginalised children and their families."
The ongoing crisis could increase the number of children living in monetary poor households by up to 117 million by the end of the 2020, according to the latest analysis from UNICEF and Save the Children.
"Immediate loss of income often means families are less able to afford basics, including food and water, are less likely to access health care or education, and are more at risk of violence, exploitation and abuse".
The children's agency also pointed out that 188 countries have imposed countrywide school closures, affecting more than 1.6 billion children and youth. The potential losses that may accrue in learning for today's young generation, and for the development of their human capital, are hard to fathom.
"More than two-thirds of countries have introduced a national distance learning platform, but among low-income countries the share is only 30 percent. Before this crisis, almost one third of the world's young people were already digitally excluded".
UNICEF also said the COVID-19 crisis could lead to the first rise in child labour after 20 years of progress. Child labour decreased by 94 million since 2000, but that gain is now at risk.
"Among other impacts, COVID-19 could result in a rise in poverty and therefore to an increase in child labour as households use every available means to survive. A one percentage point rise in poverty could lead to at least a 0.7 percent increase in child labour in certain countries."
Gautam, who was Director of Planning and responsible for drafting the Plan of Action at the 1990 first-ever World Summit for Children, told IPS: "So far, the international response and focus of national action to combat COVID-19 has not given enough attention to the multi-dimensional plight of children, especially in poor countries and communities".
He said there is also an imminent risk that "Vaccine nationalism" in the rich countries will lead to life-saving treatments being over-priced and hoarded by the rich leaving the world's most vulnerable people, especially children, waiting in the cold.
In this context, the initiative by a group of Nobel Peace Laureates and Leaders for Children calling for a fair share of the resources mobilised for COVID-19 to be devoted to the wellbeing of children is most timely and welcome, he said.
"Children have only one chance to grow, and if they do not get the priority for protection from this devastating pandemic, they will be doomed for life. This simple truth is often forgotten or neglected by political leaders and decision-makers driven by short-term political calculations."
Hence the importance of the voice of Nobel Peace Prize laureates with their moral authority and non-partisan credibility, he added.
A joint statement released here by Nobel Laureates and world leaders, said: " We, the Laureates and Leaders for Children, call upon the world's Heads of Government to demonstrate wise leadership and to urgently care for the impoverished and the marginalised. Decisions made by our leaders, actions taken by us and the discourses that ensue in the next few weeks will be crucial."
"They are going to shape the future of polity, economy, culture and morality. Development priorities will be recalibrated, individual freedom, privacy and human rights will be redefined. We must take this opportunity to transform traditional diplomacy and politics into compassionate politics. COVID-19 has exposed and exacerbated pre-existing inequalities in our world."
While this virus does not differentiate between nationalities, religions or cultures, said the statement, it is most adversely impacting those who are already marginalised – the poor, women and girls, daily wage earners, migrant labourers, indigenous peoples, victims of trafficking and slavery, child labourers, people on the move (refugees, internally displaced and others), the homeless, differently abled people, among others.
The virus, restrictions placed on the majority of the world's population, and the aftermath will have a devastating impact on the most vulnerable amongst us
Elaborating further on the potential dangers of "Vaccine nationalism," Gautam singled out the example of "Vaccine nationalism" -- i.e the U.S. refusal to join the Covid-19 Vaccines Global Access Facility (Covax) - an international effort to develop, manufacture and equitably distribute a COVID-19 vaccine.
The result of this US boycott of a joint effort by 170 countries coordinated by WHO, Global Alliance for Vaccine and Immunisation (GAVI) and the Coalition for Epidemic Preparedness Innovations (CEPI) is that it could potentially lead to hoarding of the vaccine and higher prices for doses, he said.
"The ultimate victims of such "vaccine nationalism" are likely to be children in poor countries - who might be the last on the line to get the vaccine, contrary to the call for vulnerable "Children First" priority that organizations like UNICEF, Save the Children and others have been promoting for decades."
"I hope that the Nobel Peace Laureates and Leaders for Children at a Fair Share for Children Summit will raise their voice against the risk of any such "vaccine nationalism," Gautam declared.
United Nations on Development Issues

World Risks Losing Entire Generation of Children, Nobel Laureates Warn, Inter Press Service, Monday, September 07, 2020 (posted by Global Issues)

World Risks Losing Entire Generation of Children, Nobel Laureates Warn, Inter Press Service , Monday, September 07, 2020 (posted by Global Issues)


text:
Q: Open Android TV app on top of TV channels simultanuously I want to open my Android TV app while user watches the usual TV program. Basically the app will be sown as a simple dialog or overlay on top of TV channels. I will be making sure not to disturb the TV watching experience.
Does the Android TV API supports this feature? Any leads for me?


text:
United Nations – Nippon Foundation Fellowship 2022
July 29, 2021 Published by admin
Deadline: 24 September 2021
Open to: developing countries
Applications for the United Nations – Nippon Foundation Fellowship 2022 are now open. The Fellowship provides Government officials and other mid-level professionals from developing States with advanced training on ocean affairs and the law of the sea, as well as related disciplines, including marine science in support of management frameworks.
Fellows will learn about international legal frameworks, key issues and best practices in ocean affairs, become familiar with the work of the United Nations, and develop professional skills. Fellows will also conduct individual research, under academic supervision, and develop a written thesis on a topic selected by them.
Upon completion of the Fellowship, Fellows are expected to return to their home countries and use their in-depth knowledge and extended experience to assist in formulating comprehensive ocean policy and in implementing the legal regime set out in the United Nations Convention on the Law of the Sea and related instruments, including through designing, implementing and/or evaluating specific improvement projects.
Fellowship Structure and Deliverables
The 9-month Fellowship Program is composed of two consecutive phases which provide Fellows with advanced and customized research and training opportunities in their chose fields:
Phase One: 3-month Research and Training, which is normally undertaken between March/April and June at DOALOS at the United Nations Headquarters in New York.
Phase Two: 6-month Advanced Academic Research and Study, which is normally undertaken between July and December at one of the prestigious participating Host Institutions and under the guidance of subject matter expert(s) who have recognized in-depth expertise in the Fellows' chosen field of study.
The deliverables of the Fellowship Program are:
A 100-page written thesis
A presentation of the research
An ocean governance matrix
In addition, a number of assignments will be completed in the context of the training curriculum delivered during phase one of the program.
You must be between the ages of 25 and 40;
You must have successfully completed a first university degree, and demonstrate a capacity to undertake independent advanced academic research and study;
You must be a mid-level professional from a national government organ of a developing State, or another governmental or non-governmental agency in such a State, which deals directly with ocean affairs issues, and your professional position must allow you to directly assist your nation in the formulation and/or implementation of policy in this area. This includes marine sciences and the science-policy linkage. Your "Nomination and Recommendation Form" should be completed by a Government official or other official who can attest to the nature of your work with respect to the Government's ocean affairs and law of the sea related activities, and indicate how an Award would directly contribute to these activities;
Your proposed research and study program must contribute directly to your nation's formulation and/or implementation of ocean affairs and law of the sea policies and programs; and
You must be free of all non-Fellowship obligations during the entire Fellowship period unless otherwise authorized by the Division.
Fellows will receive a stipend each month during their Fellowship, both during their time in New York and, for United Nations – Nippon Foundation Fellows participating in the 9-month programme, during their time at the second phase host institution. Fellows will be provided with a return economy class air-ticket to travel from their home country to complete the Fellowship. Read more about the fellowship conditions.
The call for applications for the 2022 United Nations Nippon Foundation Fellowship is now open. The deadline for applications to be received by DOALOS is September 24, 2021.
For more information, please visit the official website.
← IWMF Howard G. Buffett Fund for Women Journalists 2021
Fatima Al-Fihri Open University (FAOU) Autumn Ambassadors Program 2021 →


text:
Sci-Fi Valley Con (2019)
Adam Fergus
David Haydn-Jones
David Lee Madison
Jun 7th 2019 to Jun 9th 2019
Multi-Fandom
Voir les séries
13 Reasons Why, All Hail King Julien, Animaniacs, Attack of the Killer Tomatoes, Avengers Assemble (TV Show - 2013), Batman: The Brave and the Bold, Beethoven (TV Show - 1994), Being Erica, Being Human (US), Bobby's World, Bonkers (TV Show - 1993), Camp Candy, Captain Planet and the Planeteers, CatDog, Catscratch, Chuck, Clean Break (TV Show - 2015), Codename: Kids Next Door, CSI, CSI: Miami, Debra, Dennis the Menace, Detention (TV Show - 1999), Dexter, Dilbert, Disenchantment, Doug (TV Show - 1991), Duck Dodgers, Duckman: Private Dick/Family Man, Extreme Ghostbusters, Freakazoid!, Futurama, G.I. Joe (TV Show - 1990), G.I. Joe: Operation Dragonfire, Gadget and the Gadgetinis, Gravedale High, Grim & Evil, Harvey Birdman: Attorney at Law (TV Show - 2000), Hey Arnold!, Histeria! (TV Show - 1998), Horrible Histories, House of Frankenstein (TV Show - 1997), House of Mouse, Inspector Gadget (TV Show - 1985), Jackie Chan Adventures, Johnny Bravo, Jonah Hex: Motion Comics, Jumanji (TV Show - 1996), Kim Possible, King of the Hill, Law & Order: Criminal Intent, Law & Order: Trial by Jury, Lazer Tag Academy, Lethal Weapon (Saga), Lost, Love/Hate, Lykkeland (TV Show - 2018), Men in Black: The Series, Mistresses (TV Show - 2013), Mr. Hush, My Gym Partner's a Monkey, My Life as a Teenage Robot, Night of the Living Dead 3D, NYPD Blue, Oz, Penn Zero: Part-Time Hero, Pepper Ann, Pinky and the Brain, Pinky Elmyra & the Brain, Popeye and Son, Proof (TV Show - 2004), Quantico, Queer Duck, Revolution (TV Show - 2012), Rick & Morty, Robot and Monster, Roots (TV Show - 2016), Rumours, Sabrina's Secret Life, Scooby-Doo (TV Shows), Shuriken School, SketchCom, Skylanders Academy, Slimer! And the Real Ghostbusters, Sonic Underground, Space Goofs, SpongeBob SquarePants, Squirrel Boy, Star vs. the Forces of Evil, Starship Troopers, Stickin' Around, Stripperella, Supernatural, Tak & the Power of Juju, Talking Dead, Taz-Mania, Teen Angel, Teen Wolf, The 7D, The Adventures of Hyperman, The Beast, The Clinic (TV Show - 2003), The Closer, The Cosby Show, The Critic, The Garfield Show, The King of Queens, The Legend of Korra, The Looney Tunes Show (TV Show - 2011), The Magician (TV Show - 1999), The Night of the Living Dead, The Oblongs..., The Powerpuff Girls, The Real Ghost Busters, The Ren & Stimpy Show, The Replacements (TV Show - 2006), The Return of the Living Dead, The Returned (TV Show - 2015), The Secret Files of the SpyDogs, The Simpsons, The Sylvester & Tweety Mysteries, The Tick (TV Show - 1994), The Tomorrow People (TV Show - 2013), The Twisted Tales of Felix the Cat, The Walking Dead, The Weird Al Show, The Wire, The Woody Woodpecker Show, Timon & Pumbaa, Tiny Toon Adventures (TV Show - 1990), Transformers: Robots in Disguise (TV Show - 2000), Tripping the Rift, Trouble in Paradise (TV Show - 2007), Turbo FAST, Ultimate Spider-Man (TV Show - 2012), Voltron: The Third Dimension, Wabbit: A Looney Tunes Production, Wacky Races (TV Show - 2017), Where's Waldo?, Without a Trace (TV Show - 2002), Xiaolin Showdown
Blair County Convention Center, Convention Center Drive, Altoona, Pennsylvanie, États-Unis
13.2 € minimum
Facebook page of the event
> Review the convention
Send your pictures of the convention. Share your memories with other fans.
> Log in
Similar Conventions - Sci-Fi Valley Con (2019)
SF Sketchfest Tribute to Robert Klein, in conversation with Ben Fong-Torres – SF Sketchfest 2020
Pyrkon Fantasy Fan Convention (2020)
Fanboy Expo Knoxville Comic Con (2020)
Comic Con Ahoy Rotterdam (2020)
Review the convention
Events / Conventions
Anime / Tv Shows / Movies
Roster Con is a website dedicated to comic con, anime conventions, movies conventions and tv show conventions. Find on our website all news related to the meet & greet, the fanmeet and the conventions but also the list of all the convention organizers and all the events in the world.
Roster Con is not a convention organizer. We simply list to the conventions and cultural events dedicated to tv shows, anime or movies. For all the demands related to refunds, ticketing problem, ... thank you to contact directly the organizer of the event.
Website published by Youbecom Network


Hell yeah, I'm sure it is possible! And this post will explain you my personal method. I've never done this before so it's my first attempt. One thing you must know is I already speak French, German, English and a little bit of Portuguese. German and English are a huge asset to learn Dutch. So many word are exactly the same or really close.
It happened when I travelled to Brazil, the only word I knew when I arrived in Campos Sales was Obrigado (thank you). But then being 24h/24h confronted to a language you don't understand forces you to learn. And quickly! After a month I almost understood everything (simple stuff). I was always carrying a tiny dictionary with me, and then asking to people to show me the words I didn't understand. The good thing was that no one was speaking any other language.
After two interviews in french. The first with Xavier and the François we're starting a new thing here. Bilinugal interviews! A german-english mix. We went to school together with Björn.
1. What did you do after you graduated from the Emaf in 2004?
Danach habe ich fast 8 Jahre in verschiedenen Werbeagenturen als konzeptioneller Art Director gearbeitet (assai.ch / wirz.ch / publicis.ch / bbdo.de). Seit einem halben Jahr arbeite ich als Frelancer und für meine eigen Firma (in-halt.ch).