men

Crisis Management

I mean, maybe




men

Somalis turn to Dr Hyena to fight depression, mental illness

The growls from the caged hyena reverberate through the room as Mohamed Sheikh Yakub slumps silently in a chair nearby, hoping the animal will frighten away the evil spirits he says have troubled him since his divorce.




men

Three Men and a Maybe – DORK TOWER 07.04.20

Dork Tower is 100% reader supported.  Join the Army of Dorkness today, and help bring more Dork Tower to the world! By becoming a Dork Tower Patreon backer, you get our everlasting gratitude (and also swag, commentary, bonus strips, and even more swag), but, critically, you’ll help us reach our next goal – three comics a week! HINT: […]




men

Latin American photographers document the pandemic – in pictures

One virus; 18 ways of seeing the world. Covid Latam is a collective project documenting the coronavirus pandemic as it unfolds across Latin America. Photographers – 9 men and 9 women – are working in 13 countries: Colombia, Brazil, Peru, Bolivia, Ecuador, Argentina, Chile, Uruguay, Venezuela, Guatemala, Costa Rica, Cuba and Mexico to document the unfolding story of the pandemic through the Covid Latam instagram account

Continue reading...




men

Julian Sands: ‘My worst job? Father Christmas at a department store’

The actor on Derek Jarman, his wife’s right eye and the birthday party he wasn’t invited to

Born in Yorkshire, Sands, 62, studied at the Central School of Speech and Drama in London. He had a role in Derek Jarman’s Broken English and went on to appear in The Killing Fields, A Room With A View and Arachnophobia. His latest films are Yeh Ballet, available on Netflix, and The Painted Bird, out later this year. He is married, has three children, and lives in Los Angeles.

When are you happiest?
Close to a mountain summit on a glorious cold morning.

Continue reading...




men

The Last Dance: Is the Michael Jordan documentary a dressed-up puff piece?

The hit docuseries on Michael Jordan and the 1990s Chicago Bulls scores big as entertainment, but journalistic compromises make it little more than longform branded content

Not long after ESPN scored its first ever Academy Award for Ezra Edelman’s nonpareil OJ: Made in America, a masterclass in longform investigative journalism that drew comparisons to Mailer and Caro, the network announced another multi-part documentary series centering on an American sports icon. The Last Dance, a 10-part film jointly produced with Netflix, promised an unvarnished deep dive into one of the most transformative stars and feted dynasties in the history of sports: Michael Jordan and the 1990s Chicago Bulls.

The anticipation only mounted with the release of a glossy extended trailer at Christmas that teased never-before-seen footage and a star-studded roster of interviewees – Barack Obama! Justin Timberlake! – along with the participation of Jordan himself, who has spoken only sparingly about the Bulls’ imperious reign and dumbfounding break-up in the two decades since his playing days. Initially slated for a June release alongside this year’s NBA finals, ESPN swiftly moved up the premiere date to April after the coronavirus pandemic went scorched earth on its spring programming schedule.

Continue reading...




men

Young men more likely than women to break lockdown rules – UK survey

Researchers call on government to do more to explain need for physical distancing

Young men are more likely than young women to break lockdown rules, research suggests.

A team of psychologists led by Dr Liat Levita from the University of Sheffield surveyed 2,000 13- to 24-year-olds in the UK to examine the impact of the pandemic on young people.

Continue reading...




men

Uplifting Words Of Encouragement Through Animal Illustrations

We could all use a daily dose of uplifting these days. And when we think of the word "uplifting," many things come to mind such as; cats, cats, cats, and more cats. 

But if we places that aside we also think of @TheLatestKate, the Instagram Queen of positivity through beautiful animal illustrations. 

If you're in need of a pick-me-up, take a moment and read through these lovely inspirational messages. And if you need even more, you can also follow @TheLatestKate on Instagram for daily motivation. 




men

Cat Cafe Comics Delivers Instant Wholesomeness

So cute, so wholesome! 

Welcome to Cat Cafe Comics, a place filled with adorable and uplifting animal comics! Created by the talented Matt Tarpley, you can follow the cafe's Instagram page here for comics that will make you feel "warm and floofy!"

Get ready to smile! 




men

Antibodies From a Llama Named Winter Could Help Scientists Find a Treatment For COVID-19

The hunt for an effective treatment for COVID-19 has led one team of researchers to find an improbable ally for their work: According to US and Belgian scientists, a four-year-old llama named Winter who lives in a secret location in Belgium could hold the key to a cure and help scientists find a treatment for COVID-19. The team — from The University of Texas at Austin, the National Institutes of Health and Ghent University in Belgium — reports their findings of a potential avenue for a coronavirus treatment involving llamas on May 5 in the journal Cell.





men

Insults That Sound Like Compliments

This fun AskReddit thread has people describing those insults that sound just like compliments. People might be out there trying to squeeze in a dig on you, through the mask of a smile and lighthearted tone. Who knows? Maybe the next time you hear one of these out in the wild, you'll do away with the passive aggressive antics, and ask the person what they really mean. Or just let it slide. 




men

Majestically Unprofessional "Not My Job" Moments

Work in any field long enough and you'll see your fair share of wonderfully unprofessional "not my job" moments. There's slides that go right off buildings, misspelled signs and extremely lazy line painting, just to name a few. It makes you feel good about yourself to see people's majestically incompetent "not my job" moments.




men

What would a game-changing treatment for coronavirus look like?

Even if we find drugs that are effective against the coronavirus, that doesn't necessarily mean they will change the wider situation and help end lockdowns




men

Earth Day: How a pillar of the green movement was born 50 years ago

Wednesday marks the 50th anniversary of Earth Day, often spoken of as the birth of the green movement. Denis Hayes helped coordinate the first event, and speaks to New Scientist about its impact




men

The past can help us deal with the pandemic’s mental health fallout

Lessons learned from natural disasters and the military can help guide our responses to help people's mental health during the covid-19 pandemic




men

Frozen bull semen may have unleashed bluetongue virus on farm animals

The ongoing spread of bluetongue virus among European farm animals may have started when a cow was inseminated with infected bull semen stored from an earlier outbreak




men

We must act quickly to avoid a pandemic-related mental health crisis

We are already seeing the pandemic's effects on mental health, and we need to act urgently to avoid a full-blown crisis, says Sam Howells  




men

UK government won't say how many covid-19 contact tracers it has hired

The UK government has refused to say how many covid-19 contact tracers it has employed, with less than three weeks to go until its target of recruiting 18,000 of them by mid-May




men

Most people’s mental health conditions morph into others over time

As many as 86 per cent of people meet the criteria for a psychiatric diagnosis by middle age – and in many cases, a different diagnosis at some other time




men

Men are worse than women at estimating their height and weight

We tend to overestimate our height and underestimate our weight to fit society’s ideals, or because we think we're still the same as our younger selves




men

Universal basic income seems to improve employment and well-being

Finland’s two-year test of universal basic income has concluded that it doesn't seem to disincentivise working, and improves recipients’ mental and financial well-being




men

I have a doctor’s appointment today?

I was scheduled to get a routine physical a while back, cancelled for obvious reasons, and last week Stevens County Medical Center called me to come in for it today, which feels odd. I guess our local clinic has not been overwhelmed — there have been zero reported cases of COVID-19 in Stevens County, perhaps […]



  • Miscellaneous and Meta

men

I’m afraid to even mention “Plandemic”

Yikes. My social media are squirming with the maggoty indignation of cranks lit up by this pseudo-documentary, Plandemic, which is actually nothing but an overlong trailer that was live on YouTube and Facebook briefly, before it got shot down and banned for spreading misinformation. I’m not going to encourage anyone to watch it — I […]




men

Appointment





men

White men accused of killing Ahmaud Arbery won't face Georgia hate crime charges. Here's why.

Gregory and Travis McMichael, who are accused of fatally shooting Ahmaud Arbery, a black man, will not face hate crime charges. Here's why.





men

One of world's oldest men marks 116th birthday in South Africa

South African Fredie Blom celebrated his 116th birthday on Friday unfazed by the coronavirus crisis, over 100 years since the Spanish flu pandemic killed his sister. "I have lived this long because of God's grace," said Blom, possibly one of the oldest men in the world. Lighting a cigarette, he recalled the 1918 pandemic that left tens of millions dead worldwide including his sister.





men

Brazil government warns of economic collapse in 30 days

Brazil could face "economic collapse" in a month's time due to stay-at-home measures to stem the coronavirus outbreak, with food shortages and "social disorder," Economy Minister Paulo Guedes warned Thursday. Brazil, Latin America's biggest economy, is also the epicenter of the coronavirus pandemic in the region. But far-right President Jair Bolsonaro - who appeared alongside Guedes, his free-market economics guru - opposes stay-at-home measures to slow the virus, saying they are unnecessarily damaging the economy. "Within about 30 days, there may start to be shortages on (store) shelves and production may become disorganized, leading to a system of economic collapse, of social disorder," Guedes said. "This is a serious alert." Bolsonaro, who has compared the new coronavirus to a "little flu," said he understood "the virus problem" and believed that "we must save lives." "But there is a problem that's worrying us more and more... and that's the issue of jobs, of the stalled economy," Bolsonaro added. "Fighting the virus shouldn't do more damage than the virus itself."





men

Texas governor amends lockdown and orders salon owner freed from jail

The governor's order names the Dallas hairdresser who was jailed on Tuesday for staying open.





men

A 1996 court declaration written by Tara Reade's ex-husband shows she spoke of harassment in Biden's Senate office

"It was obvious that this event had a very traumatic effect on (Reade), and that she is still sensitive and effected (sic) by it today," Dronen wrote.





men

Coronavirus: Government pledges £76m for abuse victims

Vulnerable children and victims of domestic violence and modern slavery will get extra support.




men

Coronavirus: Johnson reveals 'contingency plans' made during treatment

Boris Johnson says doctors had planned what to do if his coronavirus treatment went "badly wrong".




men

Twycross wants government help to survive coronavirus shutdown

A large zoo says it needs government grants as it has no visitors or income but still has to look after its animals.




men

Coronavirus: Doctor MP says 'government's lack of testing has cost lives’

Labour's Dr Rosena Allin-Khan questions Health Secretary Matt Hancock in the House of Commons.




men

Winston Churchill's inspiring wartime speeches in Parliament

As his great grandson launches a competition to "inspire like Churchill", we look at the PM's wartime words.




men

Dateci Voce: Italian women demand voice in Covid-19 fight

Women post selfies demanding more representation in official bodies dealing with Covid-19.




men

Trump laments ‘heart-breaking' killing

The 25-year-old was jogging in Georgia when he was shot dead, in a video the president described as disturbing.




men

Slovenia cyclists hold anti-government protest

Thousands accused PM Janez Jansa of using the coronavirus crisis as a pretext to restrict freedoms.




men

Coronavirus: DIY hair shaving and beauty treatments

As hair dye and clippers become the next thing on the stockpile list - we look at how people are managing their hair and beauty.




men

Ex porn-star and activist explores men's rights issues

Philipp travels to a conference on men’s issues in Chicago, shedding light on the controversial movement.




men

Mexico receives ventilator shipment from US

The 211 machines were purchased from a US firm, Mexico's foreign minister said.




men

Leveraging React for Easy Image Management

React is a good tool when it comes to building flexible and reusable UI components. However, it’s “one of those libraries” that cannot handle all the tasks involved in building a full fleshed UI project. Other supporting tools - such as a recently announced React SDK from Cloudinary - are available to provide solutions that the React core cannot.

In such cases where media (images and videos) becomes a heavy task to handle, Cloudinary simplifies the process with the new React SDK. Let’s build and image library with Cloudinary and React using the Cloudinary’s React SDK.

Prerequisites

The only requirements for using Cloudinary in your existing React project are to install the React SDK and the upload widget. If you do not have an existing React project and want to try these examples, take the following steps:

1. Install Dependencies

We need a minimal amount of dependencies so we can focus on building a media library and not structuring a React app:

{
  "name": "img-library",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "watch": "webpack -d --watch",
    "build": "webpack",
    "serve": "serve ./public"
  },
  "author": "",
  "license": "MIT",
  "devDependencies": {
    "babel-core": "^6.18.2",
    "babel-loader": "^6.2.9",
    "babel-preset-es2015": "^6.18.0",
    "babel-preset-react": "^6.16.0",
    "serve": "^1.4.0",
    "webpack": "^1.14.0"
  },
  "dependencies": {
    "axios": "^0.15.3",
    "cloudinary-react": "^1.0.1",
    "react": "^15.4.1",
    "react-dom": "^15.4.1"
  }
}

React (and React DOM) must be used since we are making a React app. The cloudinary-react dependency is Cloudinary’s React SDK, which we will soon see how it works. axios is a tool for making HTTP requests and, in our case, we will use it request images from the Cloudinary server.

# Install dependencies
npm install

2. Setup Webpack

Webpack is our build tool. Only minimal settings are required to have a build running and our React app compiling:

// ./webpack.config.js
var webpack = require('webpack');
var path = require('path');

var BUILD_DIR = path.resolve(__dirname, 'public');
var APP_DIR = path.resolve(__dirname, 'src');

var config = {
    entry: APP_DIR + '/index.jsx',
    output: {
        path: BUILD_DIR,
        filename: 'bundle.js'
    },
    module : {
        loaders : [
            {
                test : /.jsx?/,
                include : APP_DIR,
                loader : 'babel'
            }
        ]
    }
};

module.exports = config;

Basic configuration - an entry, output and loaders to handle the React .jsx files.

3. Entry Points

We need to create an entry point, as we specified in the Webpack configuration, and another entry point for the browser, which is an index.html file:

// ./src/index.jsx
import React, { Component } from 'react';
import { render } from 'react-dom';

class Main extends Component {
    render() {
        return (
           <div className="main">
               <h1>Scotchage</h1>
           </div>
        );
    }
}

render(<Main />, document.getElementById('container'));
<!-- ./public/index.html -->
<html>
<head>
    <!--Stylesheet-->
    <link rel="stylesheet" href="style.css">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
    <!--Container for React rendering-->
    <div id="container"></div>
    <!--Bundled file-->
    <script src="bundle.js"></script>
</body>
</html>

4. Create Cloudinary Account

You need a Cloudinary account to continue with these examples. Sign up for free and store your credentials safely as shown on the dashboard:

Uploading Images

Before using the React SDK to deliver images from the Cloudinary servers, let’s use the awesome Cloudinary upload widget to upload images. First, we need to add this widget to our index.html:

<!-- ./public/index.html -->
<html>
<head>
   . . .
</head>
<body>
    . . .
    <!-- UPLOAD WIDGET -->
    <script src="//widget.cloudinary.com/global/all.js" type="text/javascript"></script>
    <script src="bundle.js"></script>
</body>
</html>

Next, we create a button, attach an event to it and upload an image once the button is clicked:

import React, { Component } from 'react';
import { render } from 'react-dom';

class Main extends Component {

    uploadWidget() {
        cloudinary.openUploadWidget({ cloud_name: 'CLOUD_NAME', upload_preset: 'PRESET', tags:['xmas']},
            function(error, result) {
                console.log(result);
            });
    }
    render(){
        return (
            <div className="main">
                <h1>Galleria</h1>
                <div className="upload">
                    <button onClick={this.uploadWidget.bind(this)} className="upload-button">
                        Add Image
                    </button>
                </div>
            </div>

        );
    }
}

render(<Main />, document.getElementById('container'));

The uploadWidget member method is the handler invoked by the click event to handle our image upload by calling cloudinary.openUploadWidget. openUploadWidget takes a config object and the upload callback handler. The config object must have at least cloud_name and upload_preset properties with valid values. You can read more about Cloud Names and Upload Presets.

Delivering Images with SDK

The Cloudinary React SDK has three major components, Image, CloudinaryContext and Transformation:

  • Image: This component is responsible for the actual delivery of images. It takes the image ID and asks the server for this image. When the image is provided, it is also responsible for painting the image on the browser.
  • Transformation: This component is used to apply transformations to images delivered with Image.
  • CloudinaryContext: You can specify Cloudinary configuration for each image on the Image component. This can be tedious when you are dealing with multiple images. CloudinaryContext allows you to apply configuration to a group of Images.

Most times you would end up with a structure like this:

<CloudinaryContext>
    <Image>
        <Transformation />
        <Transformation />
    </Image>
    <Image>
        <Transformation />
    </Image>
</CloudinaryContext>

Back to our demo app, we can request an image from the Cloudinary server and display it with the following components:

import React, { Component } from 'react';
import axios from 'axios';
import { CloudinaryContext, Transformation, Image } from 'cloudinary-react';
import { render } from 'react-dom';

class Main extends Component {
    constructor(props) {
        super(props);
        this.state = {
            gallery: []
        }
    }
    componentDidMount() {
    // Request for images tagged xmas       
axios.get('http://res.cloudinary.com/christekh/image/list/xmas.json')
            .then(res => {
                console.log(res.data.resources);
                this.setState({gallery: res.data.resources});
            });
    }
    uploadWidget() {
       // . . .
    }
    render(){
        return (
            <div className="main">
                <h1>Galleria</h1>
                <div className="gallery">
                    <CloudinaryContext cloudName="CLOUDNAME">
                        {
                            this.state.gallery.map(data => {
                                return (
                                    <div className="responsive" key={data.public_id}>
                                        <div className="img">
                                            <a target="_blank" href={`http://res.cloudinary.com/christekh/image/upload/${data.public_id}.jpg`}>
                                                <Image publicId={data.public_id}>
                                                    <Transformation
                                                        crop="scale"
                                                        width="300"
                                                        height="200"
                                                        dpr="auto"
                                                        responsive_placeholder="blank"
                                                    />
                                                </Image>
                                            </a>
                                            <div className="desc">Created at {data.created_at}</div>
                                        </div>
                                    </div>
                                )
                            })
                        }
                    </CloudinaryContext>
                    <div className="clearfix"></div>
                </div>
            </div>

        );
    }
}

render(<Main />, document.getElementById('container'));

Take one more look at the upload code:

 cloudinary.openUploadWidget({ cloud_name: 'christekh', upload_preset: 'idcidr0h', tags:['xmas']},
            function(error, result) {
            . . .

Each image is tagged with xmas, which serves as a way to request images with this tag as a collection. This is exactly what we are using the axios library to do when the component mounts:

axios.get('http://res.cloudinary.com/CLOUDNAME/image/list/xmas.json')
            .then(res => {
                console.log(res.data.resources);
                this.setState({gallery: res.data.resources});
            });

axios uses promises, so whenever the promise resolves in our case, we have a payload of images. We take advantage of React state to update our UI with the fetched resources.

Down to rendering, we configure the CloudinaryContext with our cloud_name, iterate over the gallery state that stores the images and displays them using the Image component. We also apply few transformations using the Transformation component.

For security reasons, Cloudinary will not allow you to make such request from the client unless you tell it to. The best way to go is to use the admin API via a backend SDK and then send the resource list to the client.

Updating State with New Uploads

We are able to upload images and request for images to be displayed on the user’s browsers. Here is how we update the displayed images instantly when the user uploads a new image:

uploadWidget() {
        let _this = this;
        cloudinary.openUploadWidget({ cloud_name: 'CLOUDNAME', upload_preset: 'PRESET', tags:['xmas']},
            function(error, result) {
            // Update gallery state with newly uploaded image
                _this.setState({gallery: _this.state.gallery.concat(result)})
            });
    }

Rather than logging the uploaded image information to the console, we update the gallery state, which bears the list of requested images, by concatenating the uploaded result to the gallery.

Image Management Simplified

Image uploads, transformation and delivery has never been easier. These tasks have been a serious challenge for developers. Cloudinary has created a way to abstract all this hard work, enabling you to simply plug and play.




men

Phil Foden (R) with his 'Man of the Tournament' trophy, Rhin Brewster (L) with his 'Highest Scorer' trophy of England and goalkeeper Gabriel Brazao with his 'Best Goalkeeper' trophy pose

Phil Foden (R) with his 'Man of the Tournament' trophy, Rhin Brewster (L) with his 'Highest Scorer' trophy of England and goalkeeper Gabriel Brazao with his 'Best Goalkeeper' trophy pose for a photo after the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images)




men

Referee appointments for final day

The names of the match officials in charge of the last two games of the FIFA Futsal World Cup Colombia 2016 have been unveiled. 




men

Flamengo make their entrance on a day of reunions




men

Five strengths Al Hilal will lean on against Flamengo


FIFA.com analyses five factors that have helped Saudi side Al Hilal shine this year, strengths which coach Razvan Lucescu will be hoping to use against Brazil's Flamengo.




men

Bruno Henrique inspires Flamengo into the final




men

De Arrascaeta and Flamengo show their resilience

De Arrascaeta and Flamengo show their resilience




men

Falcao of Brazil is awarded a life time achievement award

CALI, COLOMBIA - OCTOBER 01:Falcao of Brazil is awarded a life time achievement award prior to the FIFA Futsal World Cup Final match between Russia and Argentina at the Coliseo el Pueblo Stadiumon October 1, 2016 in Cali, Colombia. (Photo by Ian MacNicol - FIFA/FIFA via Getty Images)




men

Falcao of Brazil is awarded a life time achievement award

CALI, COLOMBIA - OCTOBER 01: Falcao of Brazil is awarded a life time achievement award prior to the FIFA Futsal World Cup Final match between Russia and Argentina at the Coliseo el Pueblo Stadiumon October 1, 2016 in Cali, Colombia. (Photo by Ian MacNicol - FIFA/FIFA via Getty Images)