text:
The Active Well-Being Society (formerly Big Birmingham Bikes) / Improving the health of Britain's second biggest city
Wheels for all
Joint winner of the 2017 UK Ashden Award for Clean Air in Towns and Cities
Birmingham City Council, through its Wellbeing Service, has provided more than 4,000 free bikes and cycle training to residents living in deprived areas, in order to improve their mobility, health and wellbeing, as well as to increase access to workplaces, education and training.
The scheme was also designed to bring about behaviour change by encouraging people to travel by bike rather than private car, thereby reducing congestion – and pollution – on roads. Big Birmingham Bikes has linked up with over 50 community groups including homeless and mental health charities, and GPS tracking is used to monitor the effectiveness of the scheme and provide data to guide planning and policy to support cycling.
4,000 bikes distributed free of charge
17,000 local residents benefitting from the bikes, training and events
220,000 miles cycled on BBB bicycles since the programme started
This inspirational project is not only getting people out of their cars and onto their bikes but is also improving the health, wellbeing and mobility of an often hard-to-reach demographic. There is huge potential to replicate the scheme and other cities should take note as its simple pragmatism could really help to reframe the national environmental debate.
2017 Judges quote
Streets worth celebrating
Award for Clean Air in Towns and Cities
Birmingham is one of several towns and cities in the UK where air pollution has reached a crisis point. Nationally, air pollution contributes to 40,000 early deaths annually and was named a 'public health emergency' by a cross-party group of MPs in 2016. Transport is responsible for 80% of nitrogen oxide emissions in roadside areas and is one of the key opportunities for improving the situation. The additional health benefits associated with getting people out of cars and onto bikes are well established, making cycling a win-win strategy for tackling this issue.
Handsworth Beat the Street training school, with Big Birmingham Bikes
On your bike!
Big Birmingham Bikes (BBB) is part of the City Council's 20-year Birmingham Cycle Revolution scheme to increase cycling in the city and reach a 10% modal share of journeys by bike in 2033. BBB, started in 2015, focuses on the people that are most affected by the city's poor air quality – those living in areas of higher deprivation. By working at the grassroots level and teaching those with little or no cycling experience how to ride confidently around the city, it is laying the foundations for a cycling culture that will develop from leisure riding into practical journeys. The Council has also put 20 mph zones in place across approximately a third of Birmingham's residential areas and plans to increase this further, having identified traffic speed as a key barrier to participation.
By offering a free bike to households within specified postcodes, there is a real incentive for residents to get involved and take part in some of the many training sessions and group rides organised by BBB. For communities where cycling is not widespread, and where cost is often a prohibitive barrier, free cycle training gives people the confidence to go out and cycle safely, especially if others from similar backgrounds are joining in too.
Part of BBB's success has been down to its decision to include innovative GPS tracking, provided by WRD Systems, in each of the 4,000 free bikes it has distributed. The recipients give permission for the tracking, and can see their own journeys made on the bike using an online dashboard, including distances and average speeds. This wealth of data also gives the council evidence that the project is increasing cycling uptake in these communities, acts as a disincentive against any possible thefts and ensures that the person is making full use of the bike – as it can be reallocated to another person on their waiting list if not.
This data also presents an opportunity for the Council to make the most of further cycling infrastructure projects, allowing it to identify cyclists that are regularly using particular roads and routes, and asking them to take part in focus groups and consultations on planned infrastructure, such as cycle lanes and bike parking in those areas.
Testing out some of the new cycle routes
Building confidence and ability
Many of the areas in which the BBB programme is focused do not have a cycling culture and there are sometimes perceived cultural barriers to the uptake of cycling. By basing regular lessons and group rides at the eleven council-run Wellbeing Centres, BBB has embedded its work in the local community, and gets residents interested through word of mouth and the visual presence of the eye-catching orange bikes. It has found that once a resident has gained confidence in basic cycling skills, the enthusiasm to build on their skills grows, leading them to join the local cycling clubs it has helped start up, and start using their bikes for practical journeys.
In addition to the free bikes that have been given to individuals, BBB also holds bikes at the local Wellbeing Centres for free, short-term hire to any member of the public that registers at the centre. Of the 4,000 bikes distributed so far, 3,400 have gone to individuals, 400 to Wellbeing Centres, and 200 to community groups that manage their own bike loan schemes.
Of the 4,000 bikes distributed so far, 400 to Wellbeing Centres
The multiple health benefits of cycling are clear
The health benefits for those taking up cycling are tracked through surveys and are clear. The GPS data also shows BBB the number of people regularly exercising throughout the week; 1,780 people are cycling for 30 minutes at least once a week and 635 people are cycling for 30 minutes at least five times a week.
A group ride
BBB's approach is to go further than just distributing the bikes, it also ensures that its recipients are confident and comfortable. Car-free areas are used for the initial lessons to teach people to ride, before moving on to more advanced lessons for cycling safely on the roads. Training in basic cycle maintenance is also available, and the bikes are supplied with lights and a lock. Over 1,000 Birmingham residents have been trained to Level 2 cycle proficiency and have completed the maintenance training.
The group rides, for those who are more confident in their cycling, are organised by volunteer leaders; there are now over 100 such volunteers, all of whom have undergone training in first aid, maintenance, safeguarding, risk assessments and route planning. A mentoring scheme also ensures that the first few rides they lead run smoothly. In addition to the volunteer ride leaders, 35 people have been trained as volunteer cycle instructors to run BBB lessons. The volunteers return the cost of their training through 36 hours of voluntary work, amounting to over 1,000 volunteer hours to date.
I wanted women in my community to cycle, but they were too embarrassed to - I wanted them to see me cycling, so they would realise they could too. It's given us a chance to experience something we wouldn't have had otherwise.
BBB has plans to distribute further free bikes in future, and the wider Birmingham Cycle Revolution has a series of segregated cycle routes planned, as well as progressively rolling out 20 mph zones in residential areas. Together, this package of measures will make cycling progressively more attractive to the people of Birmingham, helping cut pollution, reduce congestion and improve health. BBB also has a legacy programme of creating community cycling groups to carry on its work in their own communities, delivering cycle training and leading rides, and has set up 14 groups so far.


A healthy eating plan doesn't mean you have to sacrifice your favorite foods or give up flavor. All that's needed is a little adjustment, an open mind, and an experimental spirit. Try some of these tips when preparing your favorite home-cooked meals to make them lower in fat and more healthful.
Substitute 2 egg whites for one whole egg or three whites for two whole eggs.
In place of sour cream, try using non-fat sour cream, yogurt or pureed lowfat cottage cheese.
Use skim milk in place of whole milk.
Replace heavy cream with evaporated skim milk or lowfat yogurt.
Add various kinds of fruit or vegetable to baked breads to make them interesting and more flavorful.
Add fiber such as oatmeal, wheat germ, Raisin Bran, Bran Flakes or All-Bran to muffins and breakfast breads.
Use whole grain for part of your ingredients instead of highly refined products such as whole wheat flour, whole cornmeal, and oatmeal.
Use fruit and vegetable salsas to spice up or add zip to meats and vegetables.
Experiment with a variety of spices and herbs in your dishes to make them interesting.
Decrease sodium by using low sodium or unsalted ingredients.
Use spices in baked goods. For example reducing sugar and adding cardamom, cinnamon, nutmeg or vanilla to your recipes will enhance the impression of sweetness.
Add a variety of vegetables to meat dishes to reduce the amount of meat you eat and increase your vegetable intake.
Use sharp cheeses in your cooking; you can use less and still retain flavor or experiment with using low-fat or fat-free cheeses.
Make marinades with juices and broth instead of oil.
Refrigerate all stocks, stews, and soups and remove the congealed fat before reheating.
Use non-stick pans and cooking spray to reduce the need for oil and butter.
Grill or roast meat on a rack so the fat drips away.
Microwaving meals requires little or no fat to cook.
Poach foods by simmering them in hot liquid such as broth, water, wine, or juices; no fat required.
Steam your vegetables in a basket over boiling water or in a food steamer.
Sauté food in a non-stick pan using water, broth, juice, wine, or cooking spray.
Stir fry meat and vegetables in a non-stick pan or wok using broth or a dab of olive or canola oil.
Brown meat pieces and crumbled hamburger, drain off fat, and rinse in strainer with hot water before adding to a recipe.
Bake foods using non-fat marinades to retain moisture.


text:
#include "mega.h"
#include "../include/megaapi.h"
#include "../include/megaapi_impl.h"
#include "gtest/gtest.h"

using namespace mega;
using ::testing::Test;

static const string APP_KEY     = "8QxzVRxD";
static const string USER_AGENT  = "Unit Tests with GoogleTest framework";

// IMPORTANT: the main account must be empty (Cloud & Rubbish) before starting the test and it will be purged at exit.
// Both main and auxiliar accounts shouldn't be contacts yet and shouldn't have any pending contact requests.
// Set your login credentials as environment variables: $MEGA_EMAIL and $MEGA_PWD (and $MEGA_EMAIL_AUX / $MEGA_PWD_AUX for shares * contacts)

static const unsigned int pollingT      = 500000;   // (microseconds) to check if response from server is received
static const unsigned int maxTimeout    = 300;      // Maximum time (seconds) to wait for response from server

static const string PUBLICFILE  = "file.txt";
static const string UPFILE      = "file1.txt";
static const string DOWNFILE    = "file2.txt";

// Fixture class with common code for most of tests
class SdkTest : public ::testing::Test, public MegaListener, MegaRequestListener, MegaTransferListener {

public:
    MegaApi *megaApi = NULL;
    string email;
    string pwd;

    int lastError;

    bool loggingReceived;
    bool fetchnodesReceived;
    bool logoutReceived;
    bool responseReceived;

    bool downloadFinished;
    bool uploadFinished;
    bool transfersCancelled;
    bool transfersPaused;

    MegaHandle h;

    MegaApi *megaApiAux = NULL;
    string emailaux;

    MegaContactRequest *cr, *craux;

    bool contactInvitationFinished;
    bool contactReplyFinished;
    bool contactRequestUpdated;
    bool contactRequestUpdatedAux;
    bool contactRemoved;

    bool nodeUpdated;
    bool nodeUpdatedAux;

    string link;
    MegaNode *publicNode;

private:

protected:
    virtual void SetUp();
    virtual void TearDown();

    void onRequestStart(MegaApi *api, MegaRequest *request) {}
    void onRequestUpdate(MegaApi*api, MegaRequest *request) {}
    void onRequestFinish(MegaApi *api, MegaRequest *request, MegaError *e);
    void onRequestTemporaryError(MegaApi *api, MegaRequest *request, MegaError* error) {}
    void onTransferStart(MegaApi *api, MegaTransfer *transfer) { }
    void onTransferFinish(MegaApi* api, MegaTransfer *transfer, MegaError* e);
    void onTransferUpdate(MegaApi *api, MegaTransfer *transfer) {}
    void onTransferTemporaryError(MegaApi *api, MegaTransfer *transfer, MegaError* error) {}
    void onUsersUpdate(MegaApi* api, MegaUserList *users);
    void onNodesUpdate(MegaApi* api, MegaNodeList *nodes);
    void onAccountUpdate(MegaApi *api) {}
    void onContactRequestsUpdate(MegaApi* api, MegaContactRequestList* requests);
    void onReloadNeeded(MegaApi *api) {}
#ifdef ENABLE_SYNC
    void onSyncFileStateChanged(MegaApi *api, MegaSync *sync, const char *filePath, int newState) {}
    void onSyncEvent(MegaApi *api, MegaSync *sync,  MegaSyncEvent *event) {}
    void onSyncStateChanged(MegaApi *api,  MegaSync *sync) {}
    void onGlobalSyncStateChanged(MegaApi* api) {}
#endif

public:
    void login(int timeout = maxTimeout);
    void fetchnodes(int timeout = maxTimeout);
    void logout(int timeout = maxTimeout);
    char* dumpSession();
    void locallogout(int timeout = maxTimeout);
    void resumeSession(char *session, int timeout = maxTimeout);

    void purgeTree(MegaNode *p);
    void waitForResponse(bool *responseReceived, int timeout = maxTimeout);

    void createFile(string filename, bool largeFile = true);
    size_t getFilesize(string filename);
    void deleteFile(string filename);

    void getMegaApiAux();
    void releaseMegaApiAux();

    void inviteContact(string email, string message, int action, int timeout = maxTimeout);
    void replyContact(MegaContactRequest *cr, int action, int timeout = maxTimeout);
    void removeContact(string email, int timeout = maxTimeout);

    void shareFolder(MegaNode *n, const char *email, int action, int timeout = maxTimeout);

    void createPublicLink(MegaNode *n, int timeout = maxTimeout);
    void importPublicLink(string link, MegaNode *parent, int timeout = maxTimeout);
    void getPublicNode(string link, int timeout = maxTimeout);
    void removePublicLink(MegaNode *n, int timeout = maxTimeout);

    void getContactRequest(bool outgoing, int expectedSize = 1);
};

redpajama_set_name: RedPajamaGithub


Dare I say it? OK, I'm going for it: Spring is here!
Anyhow, to take advantage of the lovely sunsets (and the fact that it's spring break,) DH and I went to visit the old stomping grounds yesterday evening to see if we could catch the blooming cherry blossoms in the Quad at the University of Washington.
Our timing was perfect and we were not disappointed.
Back when I was a student, I always thought spring was the most beautiful (albeit not necessarily the most productive) quarter on campus. And even now, I still find it ironic that the cherry blossoms always seem to reach full bloom while most students are away on spring break.
But I'll take it and chalk it up to yet another perk for Seattle residents. I know the Quad isn't exactly Kyoto or even Washington DC, but it's still quite magical. Part of the magic is the temporal nature of the blossoms, as they only bloom for about a week or so before dusting the ground as white and pink petal snow.
I'll be honest since DH and I both found ourselves waxing nostalgic as we were taking in the scene at the Quad last night. I thought about how we probably unknowingly passed each other many times all those years ago between classes—back in the grunge heyday of Doc Martens and over-sized plaid flannel. We were simply one of the thousands of undergrads who didn't know of each other. Not surprising to those of you who attended a large state school, but I still find it kind of amazing that we happened to find each other so many years later.
Intellectually, I know I'm older. But sometimes I don't really feel like a real grown up—which in my book, is a good thing most of the time. It's only when I see the current undergraduate students on campus and realize how painfully young and innocent they all look that I really start to feel my age. Did I ever look like that, with the fresh-faced starry-eyed look? How long ago was it?
And since we're indulging in nostalgia today, here's a favorite that takes me straight back to college. Yes, I'm dated, but I'm OK with that. I'm embracing it.
Short post today because I'm hoping that you're not in front of your computer but outside enjoying the gorgeous sunny spring day! And if you happen to be in the Seattle area this weekend, consider checking out the cherry blossoms in the Quad.
Oh, and bring your camera. You won't be disappointed.
Thanks Jen! Was kind of feeling nostalgic. Ooooh Thailand for Easter Break! Have a great trip, and glad you're able to get out of the rain!
Beautiful pictures, Angela! But I do disagree with you, I've experienced plenty of lovely spring days in Seattle (long before 4th of July!) – I remember taking our motorcycle for a ride to the Olympic Peninsula as early as March. I am glad to see that this year spring is gorgeous again!
The Quad! So beautiful and a sign of spring for us in the PNW. Headed that way soon.
Thanks for stopping by Rachelle! Hope you enjoyed the blossoms and the amazing sunny day yesterday! We are lucky to live in this beautiful part of the country.
BEAUTIFUL!! Wish we had been there to see it with you.
Wish you guys were here to see it as well!
While the cherry blossoms at the UW are about 20 years younger than the ones in DC, they are of a similar vintage.


text:
namespace safe_browsing {

class BinaryFeatureExtractorWinTest : public testing::Test {
 protected:
  virtual void SetUp() override {
    base::FilePath source_path;
    ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &source_path));
    testdata_path_ = source_path
        .AppendASCII("safe_browsing")
        .AppendASCII("download_protection");

    binary_feature_extractor_ = new BinaryFeatureExtractor();
  }

  // Given a certificate chain protobuf, parse it into X509Certificates.
  void ParseCertificateChain(
      const ClientDownloadRequest_CertificateChain& chain,
      std::vector<scoped_refptr<net::X509Certificate> >* certs) {
    for (int i = 0; i < chain.element_size(); ++i) {
      certs->push_back(
          net::X509Certificate::CreateFromBytes(
              chain.element(i).certificate().data(),
              chain.element(i).certificate().size()));
    }
  }

  base::FilePath testdata_path_;
  scoped_refptr<BinaryFeatureExtractor> binary_feature_extractor_;
};

TEST_F(BinaryFeatureExtractorWinTest, UntrustedSignedBinary) {
  // signed.exe is signed by an untrusted root CA.
  ClientDownloadRequest_SignatureInfo signature_info;
  binary_feature_extractor_->CheckSignature(
      testdata_path_.Append(L"signed.exe"),
      &signature_info);
  ASSERT_EQ(1, signature_info.certificate_chain_size());
  std::vector<scoped_refptr<net::X509Certificate> > certs;
  ParseCertificateChain(signature_info.certificate_chain(0), &certs);
  ASSERT_EQ(2, certs.size());
  EXPECT_EQ("Joe's-Software-Emporium", certs[0]->subject().common_name);
  EXPECT_EQ("Root Agency", certs[1]->subject().common_name);

  EXPECT_TRUE(signature_info.has_trusted());
  EXPECT_FALSE(signature_info.trusted());
}

TEST_F(BinaryFeatureExtractorWinTest, TrustedBinary) {
  // wow_helper.exe is signed using Google's signing certifiacte.
  ClientDownloadRequest_SignatureInfo signature_info;
  binary_feature_extractor_->CheckSignature(
      testdata_path_.Append(L"wow_helper.exe"),
      &signature_info);
  ASSERT_EQ(1, signature_info.certificate_chain_size());
  std::vector<scoped_refptr<net::X509Certificate> > certs;
  ParseCertificateChain(signature_info.certificate_chain(0), &certs);
  ASSERT_EQ(3, certs.size());

  EXPECT_EQ("Google Inc", certs[0]->subject().common_name);
  EXPECT_EQ("VeriSign Class 3 Code Signing 2009-2 CA",
            certs[1]->subject().common_name);
  EXPECT_EQ("Class 3 Public Primary Certification Authority",
            certs[2]->subject().organization_unit_names[0]);

  EXPECT_TRUE(signature_info.trusted());
}

TEST_F(BinaryFeatureExtractorWinTest, UnsignedBinary) {
  // unsigned.exe has no signature information.
  ClientDownloadRequest_SignatureInfo signature_info;
  binary_feature_extractor_->CheckSignature(
      testdata_path_.Append(L"unsigned.exe"),
      &signature_info);
  EXPECT_EQ(0, signature_info.certificate_chain_size());
  EXPECT_FALSE(signature_info.has_trusted());
}

TEST_F(BinaryFeatureExtractorWinTest, NonExistentBinary) {
  // Test a file that doesn't exist.
  ClientDownloadRequest_SignatureInfo signature_info;
  binary_feature_extractor_->CheckSignature(
      testdata_path_.Append(L"doesnotexist.exe"),
      &signature_info);
  EXPECT_EQ(0, signature_info.certificate_chain_size());
  EXPECT_FALSE(signature_info.has_trusted());
}

TEST_F(BinaryFeatureExtractorWinTest, ExtractImageHeadersNoFile) {
  // Test extracting headers from a file that doesn't exist.
  ClientDownloadRequest_ImageHeaders image_headers;
  binary_feature_extractor_->ExtractImageHeaders(
      testdata_path_.AppendASCII("this_file_does_not_exist"),
      &image_headers);
  EXPECT_FALSE(image_headers.has_pe_headers());
}

TEST_F(BinaryFeatureExtractorWinTest, ExtractImageHeadersNonImage) {
  // Test extracting headers from something that is not a PE image.
  ClientDownloadRequest_ImageHeaders image_headers;
  binary_feature_extractor_->ExtractImageHeaders(
      testdata_path_.AppendASCII("simple_exe.cc"),
      &image_headers);
  EXPECT_FALSE(image_headers.has_pe_headers());
}

TEST_F(BinaryFeatureExtractorWinTest, ExtractImageHeaders) {
  // Test extracting headers from something that is a PE image.
  ClientDownloadRequest_ImageHeaders image_headers;
  binary_feature_extractor_->ExtractImageHeaders(
      testdata_path_.AppendASCII("unsigned.exe"),
      &image_headers);
  EXPECT_TRUE(image_headers.has_pe_headers());
  const ClientDownloadRequest_PEImageHeaders& pe_headers =
      image_headers.pe_headers();
  EXPECT_TRUE(pe_headers.has_dos_header());
  EXPECT_TRUE(pe_headers.has_file_header());
  EXPECT_TRUE(pe_headers.has_optional_headers32());
  EXPECT_FALSE(pe_headers.has_optional_headers64());
  EXPECT_NE(0, pe_headers.section_header_size());
  EXPECT_FALSE(pe_headers.has_export_section_data());
  EXPECT_EQ(0, pe_headers.debug_data_size());
}

TEST_F(BinaryFeatureExtractorWinTest, ExtractImageHeadersWithDebugData) {
  // Test extracting headers from something that is a PE image with debug data.
  ClientDownloadRequest_ImageHeaders image_headers;
  binary_feature_extractor_->ExtractImageHeaders(
      testdata_path_.DirName().AppendASCII("module_with_exports_x86.dll"),
      &image_headers);
  EXPECT_TRUE(image_headers.has_pe_headers());
  const ClientDownloadRequest_PEImageHeaders& pe_headers =
      image_headers.pe_headers();
  EXPECT_TRUE(pe_headers.has_dos_header());
  EXPECT_TRUE(pe_headers.has_file_header());
  EXPECT_TRUE(pe_headers.has_optional_headers32());
  EXPECT_FALSE(pe_headers.has_optional_headers64());
  EXPECT_NE(0, pe_headers.section_header_size());
  EXPECT_TRUE(pe_headers.has_export_section_data());
  EXPECT_EQ(1U, pe_headers.debug_data_size());
}

}  // namespace safe_browsing


Abuse happens, even here among us. And children are not the only victims, and not all abuse is sexual. But it doesn't have to be this way, and you don't have to face these issues alone. Safe Church Ministry equips congregations in abuse awareness, prevention and response.
The fourth Sunday in September has been designated by synod as Abuse Awareness Sunday. It's important for us to understand this topic that affects so many people and our congregational life. Abuse is NOT OK, but talking about abuse IS OK and can lead to better prevention and a better response. The resources below are arranged topically for your convenience. If the fourth Sunday in September doesn't work, these resources remain available to use at another time. Any day is a good day for greater abuse awareness.


text:
Shanghai Lions Football Club
The Best Amateur Football Club in Shanghai
Veteran Team
Asia Tour
SPL Veteran
Shanghai Lions FC
January 17, 2021 - 11:00
SIFL
FC Strosso
Shanghai Scottish
Shanghai Bulls
PF United
SIFL Hebiguchi Cup
Azzurri FC
January 9, 2021 - 11:00
Pures
December 12, 2020 - 15:00
Time to say "Goodbye 2020"
It's time to say "goodbye 2020". This year will go into the history books as the year of the covid-19 pandemic. Before January 2020, all was fine and we were doing good in all the leagues (especially the SPL U18-U16). However, disaster struck during the Chinese New Year leading China in a high state of alert. All the schools got closed and any kind of sports activities became forbidden… meaning no more training and no more matches. In the end, only the legends have been able to finish the 2020/2021 veteran league. For the record, Japan FC took the title with a blasting finish.
As for the new season 2020/2021:
For the senior team, we did make a change over the summer as we decided to rejoin the SIFL league. The concept is simple… combine our experienced seniors with youth players who are the closest becoming "men". The icing on the cake, playing on Saturday in SIFL will no longer conflict with Sunday league for the legends. On the management side, we are pleased Fehd recently joining the team. Football-wise, we have experienced mixed results in the league. This is completely normal as it takes time to find the right formation and balance.
For the youth academy (13 to 18 yo), we organized several friendly against other youth teams. As usual, Patrick and Nick are leading the training every Thursday. Last but not least we started a Lions U9 team which is probably the most positive news of the year. They are trained by our own older youth players Jason & YU Xuan (now both playing in the first team).U9 league matches are on Sunday mornings at Qi Yi. It is a joy to watch them play and they are doing very well.
Honestly, it is good to see that the Lions are having a great future going forward in the years to come. Now, we are working towards the next step which is to create a Lions U13 team. If we can achieve this, we will have a complete football club from the youngest (6 yo) to the oldest (over 60 yo)… All of them playing under the Shanghai Lions FC banner!
As every year, we lost players who had to leave China for family or work reasons. Because of covid-19, we also lost players who left China for the CNY holiday but couldn't come back still… Incredible and it's really time to say "goodbye 2020"! Luckily, we found new players willing to join us. Looking at the talent of our youth players, our future is looking good.
We'd like to wish everybody a Merry Christmas. Happy, Healthy, and Safe 2021. Last but not the least, "goodbye 2020"!!!
Shanghai Lions President on behalf of the Lions' management team
Posted in News on December 27, 2020 | Leave a reply
Looking for an amateur football team in Shanghai (China)
Club Sponsors and Opportunities
© 2021 Shanghai Lions - v1.2
Hit Counter provided by costa mesa dentist

redpajama_set_name: RedPajamaCommonCrawl


9 mag - Youth from all over the world can apply until the 31st of August for the 2018 Global Youth Video Competition. The initiative, which is in its 4th edition, aims to highlight, through videos, climate action being taken by youth.
Two participants will be selected as winners to attend the Conference of Parties (COP 24) in Katowice, Poland, in December 2018. At the Conference, the videos will be showcased in front of a global audience and the winners will have the opportunity to work with UN Climate Change's communications team covering highlights of the meeting.
Examples for the category "responsible production and consumption" can include videos on initiatives to reduce unnecessary consumption, decrease emissions during the lifecycle of goods, promote sustainable fashion, or encourage the sharing economy and re-use of goods and materials. As for the category "green and climate-friendly jobs," submissions can include videos on work or entrepreneurship that contributes to a healthy economy and addresses climate change.
A judging panel -- including representatives from the Global Environment Facility-United Nations Development Programme Small Grants Programme (GEF-UNDP SGP), UN Climate Change, and Television for Environment (tve) -- will pre-select a short list of videos based on the criteria of content, innovation, originality impact, and technical expertise. Pre-selected videos will then be posted online to be voted on by the public.
The 2018 edition of the Global Youth Video Competition is co-organized by UN Climate Change, GEF-UNDP SGP and Connect4Climate, with support from BNP Paribas Foundation and the constituency of youth non-governmental organizations (YOUNGO). The competition will be implemented through the tve platform.