> All in One 586: April 2020

Ads

Thursday, April 30, 2020

Partly Cloudy today!



With a high of F and a low of 51F. Currently, it's 62F and Clear outside.

Current wind speeds: 11 from the South

Pollen: 3

Sunrise: April 30, 2020 at 05:53PM

Sunset: May 1, 2020 at 07:44AM

UV index: 0

Humidity: 31%

via https://ift.tt/2livfew

May 1, 2020 at 10:01AM

The Hero Generator

Sarah:

I’ve had to implement the same hero for several years now, so like a good lazy programmer, I figured I’d automate it.

Direct Link to ArticlePermalink

The post The Hero Generator appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/2x9U7Lc
via IFTTT

Amazon Q1 beats on net sales of $75.5B but posts net income of $2.5B, down $1B on a year ago

Amazon has been one of the biggest names synonymous with how the consumer masses are experiencing life under lockdown: its site lets you buy anything from soup to nuts, from books to baking pans for all your sourdough; and via its streaming services, it gives you many ways to stay entertained. But it can also be a source of major frustration when you find yourself unable to book slots for deliveries, or are facing an army of sellers trying to price gouge you for hot items like masks or toilet paper.

Today, the company reported first quarter earnings that bore out the first of these in spades, but at a cost to profitability as it works to serve a public under a whole new set of challenging conditions.

The company reported net sales of $75.5 billion, up 26% on a year ago, a huge boost on the $59.7 billion it made in net sales in the first quarter a year ago. Indeed, $41 billion of the sum was attributable to product sales and $33 billion to services (which includes AWS, but also streaming and other non-physical goods).

But earnings per share took a hit, with basic EPS at $5.09 and diluted EPS at $5.01, and net income declining down to $2.535 billion versus $3.561 billion a year ago.

Operating income was also down, to $4 billion versus operating income of $4.4 billion in the same quarter a year ago.

Analysts on average were expecting EPS of $6.25 on revenues of $73.61 billion in sales. It was a repeat of the pattern we saw from eBay’s earnings yesterday, albeit on a much, much bigger scale.

On top of all this, the company provided guidance that indicated that it could swing into an operating loss in Q2. It said it expected net sales of between $75.0 billion and $81.0 billion, or to grow between 18% and 28% compared with second quarter 2019 (but largely flat with this quarter). But operating income is expected to be between negative $1.5 billion and $1.5 billion, versus $3.1 billion a year ago. “This guidance assumes approximately $4.0 billion of costs related to COVID-19,” the company said. 

The results sent Amazon’s stock up nearly 5% in after-hours trading.

Jeff Bezos, Amazon’s colourful founder and CEO, acknowledged the challenges even the mighty Amazon is facing, but also reiterated, similar to Q2 guidance, that the company plans to double down on spending to face up to serving people during the COVID-19 pandemic, whatever it might bring. It’s a long statement (in what is a very, very wordy press release overall):

From online shopping to AWS to Prime Video and Fire TV, the current crisis is demonstrating the adaptability and durability of Amazon’s business as never before, but it’s also the hardest time we’ve ever faced. We are inspired by all the essential workers we see doing their jobs — nurses and doctors, grocery store cashiers, police officers, and our own extraordinary frontline employees. The service we provide has never been more critical, and the people doing the frontline work — our employees and all the contractors throughout our supply chain — are counting on us to keep them safe as they do that work. We’re not going to let them down. Providing for customers and protecting employees as this crisis continues for more months is going to take skill, humility, invention, and money. If you’re a shareowner in Amazon, you may want to take a seat, because we’re not thinking small. Under normal circumstances, in this coming Q2, we’d expect to make some $4 billion or more in operating profit. But these aren’t normal circumstances. Instead, we expect to spend the entirety of that $4 billion, and perhaps a bit more, on COVID-related expenses getting products to customers and keeping employees safe. This includes investments in personal protective equipment, enhanced cleaning of our facilities, less efficient process paths that better allow for effective social distancing, higher wages for hourly teams, and hundreds of millions to develop our own COVID-19 testing capabilities. There is a lot of uncertainty in the world right now, and the best investment we can make is in the safety and well-being of our hundreds of thousands of employees. I’m confident that our long-term oriented shareowners will understand and embrace our approach, and that in fact they would expect no less.

Of note: Amazon Web Services accounted for $10.2 billion in sales, up 33% on the same quarter a year ago. North America accounted for about $44 billion of the company’s net sales, versus $19 billion for the international segment.

And while services are not quite yet overtaking product sales, the company is seeing its services revenues are growing much faster, at 33% versus 22%. Services include not just video streaming, but grocery delivery and other non-physical paid products that Amazon provides.

At a time when we’ve seen tens of thousands of people laid off across the technology sector, Amazon has been one of the few companies to hire, specifically to staff up with 100,000 extra workers across warehouses and its logistics network to meet surging demand from buyers. That has not always been smooth sailing however, with accusations of poor and potentially health-threatening working conditions.

This has been a thorny issue for the company, so it’s no surprise that in its earnings report, it prominently reminded investors that it has made “over 150 significant process changes in our operations network and Whole Foods Market stores to help teams stay healthy — and we conduct daily audits of the measures we’ve put into place.”

It also noted that it has procured 100 million face masks (presumably not on Amazon itself, where economical ones have been very hard to find) and are requiring that they be worn by all associates, drivers and support staff in our operations network. “We purchased more than 1,000 thermal cameras and 31,000 thermometers, which we are using to conduct mandatory daily temperature checks for employees and support staff throughout our operations sites and Whole Foods Market stores,” it noted.

Those thermal cameras have also, however, been a point of contention: Reuters this week reported that those cameras were sourced from Dahua, a Chinese company currently blacklisted by the U.S. government.

More to come.

 



from Amazon – TechCrunch https://ift.tt/3faRg6a
via IFTTT

AWS hits $10B for the quarter putting it on a $40B run rate

AWS, the cloud arm of Amazon would be a pretty successful business on its own. Today, the company announced it has passed $10 billion for the quarter, putting the cloud business on an impressive run rate of more than $40 billion.

It was a bright spot for the company in an earnings report that saw it report net income of $2.5 billion, down a $1 billion from a year ago.

Still, most companies would take that for the entire business, but AWS, which started off as kind of a side hustle for Amazon back in 2006 has grown into a powerful business all on its own. With a growth rate of 33%, it’s still growing briskly, even if it’s slowing down a bit as the law of large numbers begins to work against it.

Even though Microsoft has grown more quickly — in yesterday’s report Microsoft reported that Azure was growing at 59% clip — AWS had such a big head start and controls a big chunk of the market share.

To give you a sense of how quickly this business has grown, Bloomberg’s Jon Erlichman tweeted the Q1 numbers for AWS since 2014 and it’s pretty amazing growth:

In 2014, it was a $4 billion a year business. Today it is 9.1x that and still going strong. The good news for everyone involved is that this is a huge market, and while nobody could ever characterize the pandemic and it’s economic fall-out as good news for anyone, the fact is that is forcing companies to move to the cloud faster than they might have wanted to go.

That should bode well for all the cloud infrastructures vendors, even as the economy shrinks, the kinds of services these vendors offer should be in more demand than ever, and that means these numbers are could just going to keep growing for some time.



from Amazon – TechCrunch https://ift.tt/3bYr0de
via IFTTT

CSS-Tricks Chronicle XXXVIII

Hey hey, these “chronicle” posts are little roundups of news that I haven’t gotten a chance to link up yet. They are often things that I’ve done off-site, like be a guest on a podcast or online conference. Or it’s news from other projects I work on. Or some other thing I’ve been meaning to shout out. Stuff like that! Enjoy the links!

I chatted with Paul Campbell the other day during Admission Online, an online conference put together by the Tito crew . They’ve published all the videos there including mine.

I had a chance to chat with Paul about his Tito service about last year on ShopTalk in a really great episode. Tito is a best-in-class software tool for running a conference. It helps you build a site, sell tickets, manage attendees, run reports, and all that. Clearly the COVID-19 situation has impacted that business a lot, so I admire the accelerated pivot they are doing by creating Vito, a new platform for running online conferences, and running these conferences super quickly as a way to showcase it. If you’re running an online conference, I’d get on that invite list ASAP.

Jina Anne has been doing something new as well in the online event space. She’s been doing these 30-minute AMA (Ask Me Anything) sessions with interesting folks (excluding me). Upcoming events are here. They are five bucks, and that gets you live access and the ability to actually ask a question. Jina publishes past events to YouTube. Here’s one with me:

I was interviewed on Balance the Grid. Here’s one exchange:

What do you think are some of the best habits or routines that you’ve developed over the years to help you achieve success in your life?

I’m quite sure I have more bad habits than good, so take all this with a bucket of salt. But one thing I like to do is to try to make as much of the time I spend working is spent working on something of lasting value.

That’s why I like to blog, for example. If I finish a blog post, that’s going to be published at a URL and that URL is going to get some traffic now, and at least a little bit of traffic forever. The more I do that the more I build out my base of lasting content that will serve me forever.

Over at CodePen, we’ve been busier than ever working toward our grand vision of what CodePen can become. We have a ton of focus on things lately, despite this terrible pandemic. It’s nice to be able to stay heads down into work you find important and meaningful in the best of times, and if that can be a mental escape as well, well, I’ll take it.

We’ve been building more community-showcasing features. On our Following page there are no less than three new features: (1) A “Recent” feed¹, (2) a “Top” feed, and (3) Follow suggestions. The Following page should be about 20× more interesting by my calculation! For example, the recent feed is the activity of all the people you follow, surfacing things you likely won’t want to miss.

You can toggle that feed from “Recent” over to “Top.” While that seems like a minor change, it’s actually an entirely different feed that we create that is like a ranked popularity feed, only scoped to people you follow.

Below that is a list of other recommended CodePen folks to follow that’s created just for you. I can testify that CodePen is a lot more fun when you follow people that create things you like, and that’s a fact we’re going to keep making more and more true.

We’re always pushing out little stuff, but while I’m focusing on big new things, the biggest is the fact that we’ve taken some steps toward “Custom Editors.” That is, Pen Editors that can do things that our normal Pen Editor can’t do. We’ve released two: Flutter and Vue Single File Components.

  1. The word “feed” is new. We don’t actually use that term on the site. It’s a word we use internally on the team and what’s used by the technology we’re using. But I think it’s a good general description for the CodePen community as well, since CodePen is a developer-facing site anyway. I suppose “stream” is also a good descriptor (and just so happens to be the literal name of the tech we’re using.

This is about the time of year I would normally be telling you about the Smashing Conference I went to and the wonderful time I had there, but those in-person conferences have, of course, been re-scheduled for later in the year. At the moment, I’m still planning on Austin in October and San Francisco in November, but of course, nobody knows what the world will be like then. One thing is for sure though: online workshops. Smashing has been doing lots of these, and many of them are super deep courses that take place over several weeks.

Lots of conferences are going online and that’s kinda cool to see. It widens the possibility that anyone in the world can join, which is the web at its best. Conferences like All Day Hey are coming up in a few weeks (and is only a handful of bucks). Jamstack Conf is going virtual in May. My closest-to-home conference this year, CascadiaJS, is going virtual in September.

I got to be on the podcast Coding Zeal. I can’t figure out how to embed a BuzzSprout episode, so here’s a link.

The post CSS-Tricks Chronicle XXXVIII appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/3aSke7t
via IFTTT

Everyone's an Epidemiologist

If enough people uphill decide to try the rolling strategy, they can make the decision for you.

from xkcd.com https://xkcd.com/2300/
via IFTTT

Some Innocent Fun With HTML Video and Progress

The idea came while watching a mandatory training video on bullying in the workplace. I can just hear High School Geoff LOL-ing about a wimp like me have to watch that thing.

But here we are.

The video UI was actually lovely, but it was the progress bar that really caught my attention – or rather the [progress].value. It was a simple gradient going from green to blue that grew as the video continued playing.

If only I had this advice in high school…

I already know it’s possible to create the same sort gradient on the <progress> element. Pankaj Parashar demonstrated that in a CSS-Tricks post back in 2016.

I really wanted to mock up something similar but haven’t played around with video all that much. I’m also no expert in JavaScript. But how hard can that actually be? I mean, all I want to do is get know how far we are in the video and use that to update the progress value. Right?

My inner bully made so much fun of me that I decided to give it a shot. It’s not the most complicated thing in the world, but I had some fun with it and wanted to share how I set it up in this demo.

The markup

HTML5 all the way, baby!

<figure>
  <video id="video" src="http://html5videoformatconverter.com/data/images/happyfit2.mp4"></video>
  <figcaption>
    <button id="play" aria-label="Play" role="button">►</button>
    <progress id="progress" max="100" value="0">Progress</progress>
    </figcaotion>
</figure>

The key line is this:

<progress id="progress" max="100" value="0">Progress</progress>

The max attribute tells us we’re working with 100 as the highest value while the value attribute is starting us out at zero. That makes sense since it allows us to think of the video’s progress in terms of a percentage, where 0% is the start and 100% is the end, and where our initial starting point is 0%.

Styling

I’m definitely not going to get deep into the process of styling the <progress> element in CSS. The Pankaj post I linked up earlier already does a phenomenal job of that. The CSS we need to paint a gradient on the progress value looks like this:

/* Fallback stuff */
progress[value] {
  appearance: none; /* Needed for Safari */
  border: none; /* Needed for Firefox */
  color: #e52e71; /* Fallback to a solid color */
}

/* WebKit styles */
progress[value]::-webkit-progress-value {
  background-image: linear-gradient(
    to right,
    #ff8a00, #e52e71
  );
  transition: width 1s linear;
}

/* Firefox styles */
progress[value]::-moz-progress-bar {
  background-image: -moz-linear-gradient(
    to right,
    #ff8a00, #e52e71
  );
}

The trick is to pay attention to the various nuances that make it cross-browser compatible. Both WebKit and Mozilla browsers have their own particular ways of handling progress elements. That makes the styling a little verbose but, hey, what can you do?

Getting the progress value from a video

I knew there would be some math involved if I wanted to get the current time of the video and display it as a value expressed as a percentage. And if you thought that being a nerd in high school gained me mathematical superpowers, well, sorry to disappoint.

I had to write down an outline of what I thought needed to happen:

  • Get the current time of the video. We have to know where the video is at if we want to display it as the progress value.
  • Get the video duration. Knowing the video’s length will help express the current time as a percent.
  • Calculate the progress value. Again, we’re working in percents. My dusty algebra textbook tells me the formula is part / whole = % / 100. In the context of the video, we can re-write that as currentTime / duration = progress value.

That gives us all the marching orders we need to get started. In fact, we can start creating variables for the elements we need to select and figure out which properties we need to work with to fill in the equation.

// Variables
const progress = document.getElementById( "progress" );

// Properties
// progress.value = The calculated progress value as a percent of 100
// video.currentTime = The current time of the video in seconds
// video.duration = The length of the video in seconds

Not bad, not bad. Now we need to calculate the progress value by plugging those things into our equation.

function progressLoop() {
  setInterval(function () {
    document.getElementById("progress").value = Math.round(
      (video.currentTime / video.duration) * 100
    );
  });
}

I’ll admit: I forgot that the equation would result to decimal values. That’s where Math.round() comes into play to update those to the nearest whole integer.

That actually gets the gradient progress bar to animate as the video plays!

I thought I could call this a win and walk away happy. Buuuut, there were a couple of things bugging me. Plus, I was getting errors in the console. No bueno.

Showing the current time

Not a big deal, but certainly a nice-to-have. We can chuck a timer next to the progress bar and count seconds as we go. We already have the data to do it, so all we need is the markup and to hook it up.

Let’s add a wrap the time in a <label> since the <progress> element can have one.

<figure>
  <video controls id="video" src="http://html5videoformatconverter.com/data/images/happyfit2.mp4"></video>
  <figcaption>
    <label id="timer" for="progress" role="timer"></label>
    <progress id="progress" max="100" value="0">Progress</progress>
    </figcaotion>
</figure>

Now we can hook it up. We’ll assign it a variable and use innerHTML to print the current value inside the label.

const progress = document.getElementById("progress");
const timer = document.getElementById( "timer" );

function progressLoop() {
  setInterval(function () {
    progress.value = Math.round((video.currentTime / video.duration) * 100);
    timer.innerHTML = Math.round(video.currentTime) + " seconds";
  });
}

progressLoop();

Hey, that works!

Extra credit would involve converting the timer to display in HH:MM:SS format.

Adding a play button

The fact there there were two UIs going on at the same time sure bugged me. the <video> element has a controls attribute that, when used, shows the video controls, like play, progress, skip, volume, and such. Let’s leave that out.

But that means we need — at the very minimum — to provide a way to start and stop the video. Let’s button that up.

First, add it to the HTML:

<figure>
  <video id="video" src="http://html5videoformatconverter.com/data/images/happyfit2.mp4"></video>
  <figcaption>
    <label id="timer" for="progress" role="timer"></label>
    <button id="play" aria-label="Play" role="button">►</button>
    <progress id="progress" max="100" value="0">Progress</progress>
    </figcaotion>
</figure>

Then, hook it up with a function that toggles the video between play and pause on click.

button = document.getElementById( "play" );

function playPause() { 
  if ( video.paused ) {
    video.play();
    button.innerHTML = "❙❙";
  }
  else  {
    video.pause(); 
    button.innerHTML = "►";
  }
}

button.addEventListener( "click", playPause );
video.addEventListener("play", progressLoop);

Hey, it’s still working!

I know it seems weird to take out the rich set of controls that HTML5 offers right out of the box. I probably wouldn’t do that on a real project, but we’re just playing around here.

Cleaning up my ugly spaghetti code

I really want to thank my buddy Neal Fennimore. He took time to look at this with me and offer advice that not only makes the code more legible, but does a much, much better job defining states…

// States
const PAUSED = 'paused';
const PLAYING = 'playing';

// Initial state
let state = PAUSED;

…doing a proper check for the state before triggering the progress function while listening for the play, pause and click events…

// Animation loop
function progressLoop() {
  if(state === PLAYING) {
    progress.value = Math.round( ( video.currentTime / video.duration ) * 100 );
    timer.innerHTML = Math.round( video.currentTime ) + ' seconds';
    requestAnimationFrame(progressLoop);
  }
}

video.addEventListener('play', onPlay);
video.addEventListener('pause', onPause);
button.addEventListener('click', onClick);

…and even making the animation more performant by replacing setInterval with requestAnimationFrame as you can see highlighted in that same snippet.

Here it is in all its glory!

Oh, and yes: I was working on this while “watching” the training video. And, I aced the quiz at the end, thank you very much. 🤓

The post Some Innocent Fun With HTML Video and Progress appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/35l0gRx
via IFTTT

Real-World Effectiveness of Brotli

Harry Roberts:

The numbers so far show that the difference between no compression and Gzip are vast, whereas the difference between Gzip and Brotli are far more modest. This suggests that while the nothing to Gzip gains will be noticeable, the upgrade from Gzip to Brotli might perhaps be less impressive.

The rub?

Gzip made files 72% smaller than not compressing them at all, but Brotli only saved us an additional 5.7% over that. In terms of FCP, Gzip gave us a 23% improvement when compared to using nothing at all, but Brotli only gained us an extra 3.5% on top of that.

So Brotli is just like spicy gzip.

Still, I’ll take a handful of points by flipping a switch in Cloudflare.

Direct Link to ArticlePermalink

The post Real-World Effectiveness of Brotli appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/3eJZIZy
via IFTTT

Amazon worker-activists form international organization to demand change in warehouses

Amazon workers across the world are formalizing their activism with the creation of the Amazon Workers International. Its first action is a letter to Amazon CEO Jeff Bezos and Amazon Director of UK Customer Fulfillment Stefano Perego in which the group demands the company makes permanent certain steps Amazon has implemented amid the COVID-19 pandemic.

In light of the global health crisis, Amazon made some positive changes — changes that workers want to ensure stay long beyond the pandemic. Those changes include an increase of $2 per hour and an extra five minutes’ worth of break time. The company also got rid of productivity feedback, which incentivizes workers to do more, faster.

“They’re talking about taking that away,” Christian Zammarròn, an Amazon warehouse worker in Chicago, told TechCrunch. “I don’t think they should take it away. These are things we need not just during a pandemic but all the time.”

As of April 24, Amazon said it would extend the increased hourly pay through May 16.

“We’ve extended the increased hourly pay through May 16,” Amazon spokesperson Lisa Levandowski told TechCrunch. “We are also extending double overtime pay in the U.S. and Canada. These extensions increase our total investment in pay during COVID-19 to nearly $700 million for our hourly employees and partners. In addition, we are providing flexibility with leave of absence options, including expanding the policy to cover COVID-19 circumstances, such as high-risk individuals or school closures. We continue to see heavy demand during this difficult time and the team is doing incredible work for our customers and the community.”

Amazon Workers International formed after about 40 Amazon warehouse workers around the world gathered in Madrid a couple of months ago. The organization represents Amazon workers from six countries: Germany, Poland, Spain, France, Slovakia and the United States.

“Each country has its own laws but from our conversations at our convenings, we just see that we all have basically the same issues, Zammarròn said. “In Europe, especially, they’ve seen the necessity for international solidarity and how that makes them stronger.”

While Zammarròn’s list of grievances with Amazon is long, what tops his list is retaliation.

“That needs to end,” he said.

Toward the end of March, warehouse workers in Chicago went on a number of safety strikes in “response to Amazon’s complete disregard for our lives with positive COVID-19 cases spreading through our warehouse,” Zammarròn, who helped organize the actions in Chicago, said. “They’ve been retaliating these past weeks trying to scare us and trying to shut us up. We’ve been fighting back.”

In March, Amazon fired worker-activist Chris Smalls, who helped organize a protest at a warehouse in Staten Island, New York. NY Attorney General Leticia James has since said she’s considering taking legal action against Amazon. Then, more recently, a group of Amazon workers at a fulfillment center in Minnesota protested the firing of a worker who stayed home for fear of giving her kids COVID-19. Shortly after the protest, Amazon reinstated the worker.

Already, Amazon warehouse workers have filed unfair labor practice charges and have more on the way, Zammarròn said. Still, he said he’s already seen Amazon change a lot of safety policies. Amazon started providing masks, taking temperatures and providing hand sanitizer and disinfectant wipes.

“And maybe the biggest thing they did was they slowed down the work,” he said. “They decreased the amount of work so that actually helps in maintaining some social distancing. And these were immediate changes after our safety strikes. Before that, they were basically operating as if everything was normal.”

But workers still want to make it known that their coworkers are continuing to get sick. In the letter, workers say Amazon lacks in the transparency department. Amazon, however, maintains that when it confirms a case of COVID-19 among workers, it communicates that to other people who work at that same site.

This letter of demands is just the first of what we’re seeing from AWI.

“Our international solidarity will definitely grow,” he said. “This is a very important aspect of what we’re doing and what any worker movement should do, which is expressing coordinated international demands and coordinated international actions.”



from Amazon – TechCrunch https://ift.tt/2KQdjRi
via IFTTT

A Book Apart Turning 10

Early congratulations, A Book Apart! That’s a hell of a milestone. I’m quite sure I’ve read more A Book Apart books than any other tech book publisher.

Katel LeDu runs the ship over there, and she’s given me very special pack of discount codes that will get you my book, Practical SVG, for free. So now it’s my job to get you those codes. There are only 10 of them—not enough for everyone. So I’m going to do some low-down, dirty-rotten, absolutely-shameless cross-marketing: I’m going to give them to the first 10 people who are CodePen PRO who email me at chriscoyier@gmail.com. CodePen PRO is only $12/month if you pay monthly or $8/month if you pay yearly, and this discount code is worth $14, so in the end, you get both and save a few bucks. If you’re already PRO, cool, thanks, you still qualify.

You know what’s cool about Practical SVG? Even though I wrote it 4 years ago, SVG just doesn’t change that fast, so I’d say 90%+ I wouldn’t even change in a re-write. If you’re just learning about SVG as a front-end developer, it’s a fine choice.

In addition to my conniving scheme above, if you just really would like this book and have zero budget for it, or know someone else in that situation, you can also email me about that and we’ll work it out. I just may have a few copies around here I could get you. Hey, I’m trying to make money off you but I ain’t trying to lock away knowledge from anyone that really needs it.

The post A Book Apart Turning 10 appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/2SoitIu
via IFTTT

African fintech firm Flutterwave launches SME e-commerce portal

San Francisco and Lagos-based fintech startup Flutterwave has launched Flutterwave Store, a portal for African merchants to create digital shops to sell online.

The product is less Amazon and more eBay — with no inventory or warehouse requirements. Flutterwave insists the move doesn’t represent any shift away from its core payments business.

The company accelerated the development of Flutterwave Store in response to COVID-19, which has brought restrictive measures to SMEs and traders operating in Africa’s largest economies.

After creating a profile, users can showcase inventory and link up to a payment option. For pickup and delivery, Flutterwave Store operates through existing third party logistics providers, such as Sendy in Kenya and Sendbox in Nigeria.

The service will start in 15 African countries and the only fees Flutterwave will charge (for now) are on payments. Otherwise, it’s free for SMEs to create an online storefront and for buyers and sellers to transact goods.

While the initiative is born out of the spread of coronavirus cases in Africa, it will continue beyond the pandemic. And Flutterwave’s CEO Olugbenga Agboola — aka GB — is adamant Flutterwave Store is not a pivot for the fintech company, which is an alum of Silicon Valley accelerator Y-Combinator.

“It’s not a direction change. We’re still a B2B payment infrastructure company. We are not moving into becoming an online retailer, and no we’re not looking to become Jumia,” GB told TechCrunch on a call.

Image Credits: Flutterwave

He was referring to Africa’s largest e-commerce company, which operates in 11 countries and listed in an NYSE IPO last year.

Flutterwave has a very different business than the continent’s big e-commerce players and plans to stick with it, according to GB.

When it comes to reach, VC and partnerships, the startup is one of the more connected and visible operating in Africa’s tech ecosystem. The Nigerian-founded venture’s main business is providing B2B payments services for companies operating in Africa to pay other companies on the continent and abroad.

Launched in 2016, Flutterwave allows clients to tap its APIs and work with Flutterwave developers to customize payments applications. Existing customers include Uber and Booking.com.

In 2019, Flutterwave processed 107 million transactions worth $5.4 billion, according to company data. Over the last 12 months the startup has been on a tear of investment, product and partnership activity.

In July 2019, Flutterwave joined forces with Chinese e-commerce company Alibaba’s Alipay to offer digital payments between Africa and China.

The Alipay collaboration followed one between Flutterwave and Visa to launch a consumer payment product for Africa, called GetBarter.

Then in January of this year, the startup raised a $35 million Series B round and announced a partnership with Worldpay FIS for payments in Africa.

On the potential for Flutterwave Store, there’s certainly a large pool of traders and small businesses across Africa that could appreciate the opportunity to take their businesses online. The IFC has estimated that SMEs make up 90% of Sub-Saharan Africa’s business serving the region’s one-billion people.

Flutterwave confirmed Flutterwave Store’s initial 15 countries will include Africa’s top economies and population countries of Nigeria, Ghana, Kenya and South Africa.

Those markets already have a number of players driving digital commerce, including options for small businesses to post their wares online. Jumia’s Jumia Marketplace allows vendors register on its platform and use the company’s resources to do online retail.

Facebook has made a push into Africa that includes its overall push to get more users to sell on Facebook Marketplace. The social media giant now offers the service in Nigeria — with 200 million people and the continent’s largest economy.

GB Flutterwave disrupt

Flutterwave CEO GB, Image Credits: TechCrunch

eBay has not yet gone live in Africa with its business to consumer website, that allows any cottage industry to create a storefront. The American company does have an arrangement with e-commerce startup MallforAfrica.com for limited sales of African goods on eBay’s U.S. shopping site.

On where Flutterwave’s new product fits into Africa’s online sales space, CEO GB says Flutterwave Store will maintain a niche focus on mom and pop type businesses.

“The goal is not be become like eBay, that’s advocating for everybody. We’re just giving small merchants the infrastructure to create an online store at zero cost right from scratch,” he said.

That’s something Flutterwave expects to be useful to Africa’s SMEs through the COVID-19 crisis and beyond.



from Amazon – TechCrunch https://ift.tt/2yf1CB3
via IFTTT

Wednesday, April 29, 2020

Mostly Clear today!



With a high of F and a low of 42F. Currently, it's 50F and Clear outside.

Current wind speeds: 6 from the Southeast

Pollen: 3

Sunrise: April 29, 2020 at 05:54PM

Sunset: April 30, 2020 at 07:43AM

UV index: 0

Humidity: 28%

via https://ift.tt/2livfew

April 30, 2020 at 10:00AM

Workers prepare to strike May 1, amid strained pandemic working conditions

The global pandemic has tested the bounds of businesses across the world and transformed the way many of us live our lives. For those among us who are unable to leave our homes at all as COVID-19 virus rages, online retail and food services have been a kind of lifeline.

But as contact-free delivery becomes the norm, it can be easy to forgot all the people working to provide those services at risk to their health. And more often than not, employees are working for low wages or tips.

A number of protests have been organized at companies like Amazon and Instagram in the intervening weeks and months, but a wide-scale, cross-company event hasn’t really surfaced. That could change on May 1, as employees mark the longstanding tradition of International Workers’ Day with a May Day general strike.

Material for the event has been circulating online, rebadged “Essential Workers’ Day,” as a nod to the exemptions to stay at home orders for retail and food delivery, among others. The event is framed as a combination strike and boycott, targeted at Amazon/Whole Foods, Instacart and Target/Shipt (as well as Walmart and FedEx, according to various sources). 

Specific demands differ from employer to employer, but workers have broadly asked for essential health protections, sick leave and hazard pay as the pandemic has continued to wear on and profits have spiked for many providers. 

Vice spoke to Christian Smalls, one of the organizers, the Staten Island Amazon employee who was fired after organizing a walkout at one of the company’s fulfillment centers. “We formed an alliance between a bunch of different companies because we all have one common goal which is to save the lives of workers and communities,” he told the site. “Right now isn’t the time to open up the economy. Amazon is a breeding ground [for COVID] which is spreading right now through multiple facilities.”

Amazon workers have been particularly vocal about the retail giant’s response to the pandemic. In addition to Smalls, two other employees who were publicly critical of the company were fired by Amazon — though the company denied the direct link. Instacart employees have also organized boycotts and strikes, including one in late March.

“We remain singularly focused on the health and safety of the Instacart community. Our team has been diligently working to offer new policies, guidelines, product features, resources, increased bonuses, and personal protective equipment to ensure the health and safety of shoppers during this critical time,” the company said in a statement. “We welcome all feedback from shoppers and we will continue to enhance their experience to ensure this important community is supported.”

Other companies have previously issued similar statements regarding employment during the crisis. We’ve reached out to them for additional comment on the planned protests.



from Amazon – TechCrunch https://ift.tt/2y1XiFu
via IFTTT

Click Once, Select All; Click Again, Select Normally

A bonafide CSS trick from Will Boyd!

  1. Force all the content of an element to be selected when clicked with user-select: all;
  2. If you click a second time, let the user select just parts of the text as normal.
  3. Second click? Well, it’s a trick. You’re really using a time-delayed forwards-ending @keyframes animation when the element is in :focus to change it to user-select: text;

Will’s article has a bunch of more useful information and use-cases for user-select.

Direct Link to ArticlePermalink

The post Click Once, Select All; Click Again, Select Normally appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/2yPPyGg
via IFTTT

Amazon to stream NFL’s Thursday Night Football through 2022, plus one exclusive game each season

The NFL’s Thursday Night Football is returning to stream on Amazon. The companies announced today they’ve again renewed their agreement which will allow Amazon Prime Video to offer a live, digital stream of Thursday Night Football to a global audience through the 2022 season. This time around, the NFL and Amazon also announced a new deal allowing Amazon to exclusively stream one NFL game globally on Prime Video and Twitch for each of the next three seasons.

Amazon and the NFL have been partnered on streaming Thursday Night Football since 2017, initially with a one-year deal that was said to be valued at $50 million. The companies renewed that agreement in 2018 for two more years, valuing each season at $65 million (or $130 million in total).

The terms of this new deal weren’t disclosed, but an initial report from CNBC claims the deal price has been upped once again.

That makes sense, of course, given the new agreement is not only arriving two years later but also now includes an exclusive game.

Over time, the audience for the NFL games has grown slightly. The 2019 Thursday Night Football games delivered an average audience of 15.4 million viewers across all properties (broadcast, cable and digital), up 4+% from the 2018 games.

Digital streams in 2019 surpassed an average minute audience of over 1 million, up 43% year-over-year (729K). This includes the streams across Prime Video, Twitch, NFL digital, FOX Sports digital, and Verizon Media mobile properties. (Note: TechCrunch’s parent company is owned by Verizon).

Viewers will be able to stream the 11 Thursday Night Football games broadcast by FOX through the Prime Video and Twitch websites and apps across living room devices, mobile phones, tablets, and PCs. That makes the games available to Amazon Prime’s over 150 million worldwide users in over 200 countries and territories, Amazon notes.

But Amazon won’t be the only place to watch most of these games.

The games are also broadcast by FOX in Spanish on FOX Deportes, and will be simulcast on the NFL Network. This continues the league’s “Tri-Cast” strategy which includes a combination of broadcast, cable and digital distribution.

Meanwhile, Amazon’s exclusively streamed game isn’t a Thursday Night Football game, but instead is a regular season game played on a Saturday in the second half of the season. This game will also be televised over-the-air in the participating teams’ home markets.

As before, the digital streams will include access to Amazon features like X-Ray and Next Gen Stats powered by AWS. Prime members can pick from either the FOX or FOX Deportes broadcast and from a range of alternative audio options exclusive to Prime Video.

Amazon and the NFL will also collaborate on additional content and fan viewing experiences around the game streams in the future.

“As our relationship has expanded, Amazon has become a trusted and valued partner of the NFL,” said Brian Rolapp, Chief Media and Business Officer for the NFL, in a statement. “Extending this partnership around Thursday Night Football continues our critical mission of delivering NFL games to as many fans in as many ways as possible both in the United States and around the world,” he added.

 



from Amazon – TechCrunch https://ift.tt/2SjD5lj
via IFTTT

[David Baron’s] Thoughts on an implementable path forward for Container Queries

That’s the title of a public post from David Baron, a Principal Engineer at Firefox, with thoughts toward container queries. I know a lot of people have been holding their breath waiting for David’s ideas, as he’s one of few uniquely qualified to understand the ins and outs of this and speak to implementation possibility.

We’re still in the early stages of container queries. Every web designer and developer wants them, the browsers know it, but it’s a super complicated situation. It was very encouraging in February 2020 to hear positive signals about a possible switch-statement syntax that would give us access to an available-inline-size used to conditionally set individual values.

Now we’re seeing a second idea that is also in the realm of the possible.

This ideas uses an @rule instead for the syntax. From the document:

@container <selector> (<container-media-query>)? {
  // ... rules ...
}

So I’m imagining it like:

.parent {
  contain: layout inline-size;
  display: grid;
  grid-template-columns: 100%;
  gap: 1rem;
}
@container .parent (min-width: 400px) {
  grid-template-columns: 1fr 1fr;

  .child::before {
     content: "Hello from container query land!";
   }
}

Except…

  1. I’m not sure if you’d have to repeat the selector inside as well? Or if dropping property/value pairs in there automatically applies to the selector in the @rule.
  2. David says “The rules can match only that container’s descendants. Probably we’d need support for some properties applying to the container itself, but others definitely can’t.” I’d hope grid properties are a strong contender for something you can change, but I have no idea. Otherwise, I think we’d see people wrapping elements with <div class="container-query"> to get around the “only descendants” limit.

Containment seems to be a very important part of this. Like if the element isn’t property contained, the container query just won’t work. I don’t know that much about containment, but Rachel has a great deep dive from late last year.

Again, this is super early days, I’m just having fun watching this and none of us really have any idea what will actually make it to browsers.

Direct Link to ArticlePermalink

The post [David Baron’s] Thoughts on an implementable path forward for Container Queries appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/38cnQzS
via IFTTT

Alpine.js: The JavaScript Framework That’s Used Like jQuery, Written Like Vue, and Inspired by TailwindCSS

We have big JavaScript frameworks that tons of people already use and like, including React, Vue, Angular, and Svelte. Do we need another JavaScript library? Let’s take a look at Alpine.js and you can decide for yourself. Alpine.js is for developers who aren’t looking to build a single page application (SPA). It’s lightweight (~7kB gzipped) and designed to write markup-driven client-side JavaScript.

The syntax is borrowed from Vue and Angular directive. That means it will feel familiar if you’ve worked with those before. But, again, Alpine.js is not designed to build SPAs, but rather enhance your templates with a little bit of JavaScript.

For example, here’s an Alpine.js demo of an interactive “alert” component.

The alert message is two-way bound to the input using x-model="msg". The “level” of the alert message is set using a reactive level property. The alert displays when when both msg and level have a value.

It’s like a replacement for jQuery and JavaScript, but with declarative rendering

Alpine.js is a Vue template-flavored replacement for jQuery and vanilla JavaScript rather than a React/Vue/Svelte/WhateverFramework competitor.

Since Alpine.js is less than a year old, it can make assumptions about DOM APIs that jQuery cannot. Let’s briefly draw a comparison between the two.

Querying vs. binding

The bulk of jQuery’s size and features comes in the shape of a cross-browser compatibility layer over imperative DOM APIs — this is usually referred to as jQuery Core and sports features that can query the DOM and manipulate it.

The Alpine.js answer to jQuery core is a declarative way to bind data to the DOM using the x-bind attribute binding directive. It can be used to bind any attribute to reactive data on the Alpine.js component. Alpine.js, like its declarative view library contemporaries (React, Vue), provides x-ref as an escape hatch to directly access DOM elements from JavaScript component code when binding is not sufficient (eg. when integrating a third-party library that needs to be passed a DOM Node).

Handling events

jQuery also provides a way to handle, create and trigger events. Alpine.js provides the x-on directive and the $event magic value which allows JavaScript functions to handle events. To trigger (custom) events, Alpine.js provides the $dispatch magic property which is a thin wrapper over the browser’s Event and Dispatch Event APIs.

Effects

One of jQuery’s key features is its effects, or rather, it’s ability to write easy animations. Where we might use slideUp, slideDown, fadeIn, fadeOut properties in jQuery to create effects, Alpine.js provides a set of x-transition directives, which add and remove classes throughout the element’s transition. That’s largely inspired by the Vue Transition API.

Also, jQuery’s Ajax client has no prescriptive solution in Alpine.js, thanks to the Fetch API or taking advantage of a third party HTTP library (e.g. axios, ky, superagent).

Plugins

It’s also worth calling out jQuery plugins. There is no comparison to that (yet) in the Alpine.js ecosystem. Sharing Alpine.js components is relatively simple, usually requiring a simple case of copy and paste. The JavaScript in Alpine.js components are “just functions” and tend not to access Alpine.js itself, making them relatively straightforward to share by including them on different pages with a script tag. Any magic properties are added when Alpine initializes or is passed into bindings, like $event in x-on bindings.

There are currently no examples of Alpine.js extensions, although there are a few issues and pull requests to add “core” events that hook into Alpine.js from other libraries. There are also discussions happening about the ability to add custom directives. The stance from Alpine.js creator Caleb Porzio, seems to be basing API decisions on the Vue APIs, so I would expect that any future extension point would be inspired on what Vue.js provides.

Size

Alpine.js is lighter weight than jQuery, coming in at 21.9kB minified — 7.1kB gzipped — compared to jQuery at 87.6kB minified — 30.4kB minified and gzipped. Only 23% the size!

Most of that is likely due to the way Alpine.js focuses on providing a declarative API for the DOM (e.g. attribute binding, event listeners and transitions).

Bundlephobia breaks down the two

For the sake of comparison, Vue comes in at 63.5kB minified (22.8kB gzipped). How can Alpine.js come in lighter despite it’s API being equivalent Vue? Alpine.js does not implement a Virtual DOM. Instead, it directly mutates the DOM while exposing the same declarative API as Vue.

Let’s look at an example

Alpine is compact because since application code is declarative in nature, and is declared via templates. For example, here’s a Pokemon search page using Alpine.js:

This example shows how a component is set up using x-data and a function that returns the initial component data, methods, and x-init to run that function on load.

Bindings and event listeners in Alpine.js with a syntax that’s strikingly similar to Vue templates.

  • Alpine: x-bind:attribute="express" and x-on:eventName="expression", shorthand is :attribute="expression" and @eventName="expression" respectively
  • Vue: v-bind:attribute="express" and v-on:eventName="expression", shorthand is :attribute="expression" and @eventName="expression" respectively

Rendering lists is achieved with x-for on a template element and conditional rendering with x-if on a template element.

Notice that Alpine.js doesn’t provide a full templating language, so there’s no interpolation syntax (e.g. in Vue.js, Handlebars and AngularJS). Instead, binding dynamic content is done with the x-text and x-html directives (which map directly to underlying calls to Node.innerText and Node.innerHTML).

An equivalent example using jQuery is an exercise you’re welcome to take on, but the classic style includes several steps:

  • Imperatively bind to the button click using $('button').click(/* callback */).
  • Within this “click callback” get the input value from the DOM, then use it to call the API.
  • Once the call has completed, the DOM is updated with new nodes generated from the API response.

If you’re interested in a side by side comparison of the same code in jQuery and Alpine.js, Alex Justesen created the same character counter in jQuery and in Alpine.js.

Back in vogue: HTML-centric tools

Alpine.js takes inspiration from TailwindCSS. The Alpine.js introduction on the repository is as “Tailwind for JavaScript.”

Why is that important?

One of Tailwind’s selling points is that it “provides low-level utility classes that let you build completely custom designs without ever leaving your HTML.” That’s exactly what Alpine does. It works inside HTML so there is no need to work inside of JavaScript templates the way we would in Vue or React  Many of the Alpine examples cited in the community don’t even use script tags at all!

Let’s look at one more example to drive the difference home. Here’s is an accessible navigation menu in Alpine.js that uses no script tags whatsoever.

This example leverages aria-labelledby and aria-controls outside of Alpine.js (with id references). Alpine.js makes sure the “toggle” element (which is a button), has an aria-expanded attribute that’s true when the navigation is expanded, and false when it’s collapsed. This aria-expanded binding is also applied to the menu itself and we show/hide the list of links in it by binding to hidden.

Being markup-centric means that Alpine.js and TailwindCSS examples are easy to share. All it takes is a copy-paste into HTML that is also running Alpine.js/TailwindCSS. No crazy directories full of templates that compile and render into HTML!

Since HTML is a fundamental building block of the web, it means that Alpine.js is ideal for augmenting server-rendered (Laravel, Rails, Django) or static sites (Hugo, Hexo, Jekyll). Integrating data with this sort of tooling can be a simple as outputting some JSON into the x-data="{}" binding. The affordance of passing some JSON from your backend/static site template straight into the Alpine.js component avoids building “yet another API endpoint” that simply serves a snippet of data required by a JavaScript widget.

Client-side without the build step

Alpine.js is designed to be used as a direct script include from a public CDN. Its developer experience is tailored for that. That’s why it makes for a great jQuery comparison and replacement: it’s dropped in and eliminates a build step.

While it’s not traditionally used this way, the bundled version of Vue can be linked up directly. Sarah Drasner has an excellent write-up showing examples of jQuery substituted with Vue. However, if you use Vue without a build step, you’re actively opting out of:

  • the Vue CLI
  • single file components
  • smaller/more optimized bundles
  • a strict CSP (Content Security Policy) since Vue inline templates evaluate expressions client-side

So, yes, while Vue boasts a buildless implementation, its developer experience is really depedent on the Vue CLI. That could be said about Create React App for React, and the Angular CLI. Going build-less strips those frameworks of their best qualities.

There you have it! Alpine.js is a modern, CDN-first  library that brings declarative rendering for a small payload — all without the build step and templates that other frameworks require. The result is an HTML-centric approach that not only resembles a modern-day jQuery but is a great substitute for it as well.

If you’re looking for a jQuery replacement that’s not going to force you into a SPAs architecture, then give Alpine.js a go! Interested? You can find out more on Alpine.js Weekly, a free weekly roundup of Alpine.js news and articles.

The post Alpine.js: The JavaScript Framework That’s Used Like jQuery, Written Like Vue, and Inspired by TailwindCSS appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/3aMMDvq
via IFTTT

Tuesday, April 28, 2020

Clear/Wind today!



With a high of F and a low of 37F. Currently, it's 47F and Clear outside.

Current wind speeds: 8 from the Northwest

Pollen: 3

Sunrise: April 28, 2020 at 05:56PM

Sunset: April 29, 2020 at 07:42AM

UV index: 0

Humidity: 40%

via https://ift.tt/2livfew

April 29, 2020 at 10:00AM

How to Redirect a Search Form to a Site-Scoped Google Search

This is just a tiny little trick that might be helpful on a site where you don’t have the time or desire to build out a really good on-site search solution. Google.com itself can perform searches scoped to one particular site. The trick is getting people there using that special syntax without them even knowing it.

Make a search form:

<form action="https://google.com/search" target="_blank" type="GET">

  <label>
     Search CSS-Tricks on Google: 
     <input type="search" name="q">
   </label>

  <input type="submit" value="Go">

</form>

When that form is submitted, we’ll intercept it and change the value to include the special syntax:

var form = document.querySelector("form");

form.addEventListener("submit", function (e) {
  e.preventDefault();
  var search = form.querySelector("input[type=search]");
  search.value = "site:css-tricks.com " + search.value;
  form.submit();
});

That’s all.

The post How to Redirect a Search Form to a Site-Scoped Google Search appeared first on CSS-Tricks.



from CSS-Tricks https://ift.tt/2YqNEqL
via IFTTT

Investors, startup founders in India pool $13M to fund projects that fight coronavirus

More than 150 investors and entrepreneurs in India are funding dozens of projects in a bid to help millions better combat the COVID-19 epidemic and help the nation’s booming startup ecosystem withstand the economic devastation it has caused.

The investors said they have contributed 1 billion Indian rupees — or $13 million — of their own money to the ACT Grants initiative, which was unveiled late last month.

The group — which includes several prominent industry figures including Nandan Nilekani, Paytm’s Vijay Shekhar Sharma, Flipkart’s Kalyan Krishnamurthy, Oyo’s Ritesh Agarwal, Udaan’s Sujeet Kumar, Freshworks’ Girish Mathrubootham, CRED’s Kunal Shah, and Times Internet’s Miten Sampat — has funded 32 projects to date.

These projects span six themes, including solutions that could help curtail the spread of the Covid-19 disease, development of testing and detection kits, building medical equipment such as ventilators, and taking care of mental health.

The group came together last month when India had just begun to see cases of the coronavirus disease.

“As governments across the globe started to take measures to combat this pandemic, one thing that came up in our conversations with other investors, startup founders, and startup employees was this urgency to not sit and watch what the government does but help and pitch in as an industry,” said Dev Khare, a partner at Lightspeed Venture Partners, in an interview with TechCrunch.

There have been 29,435 known cases of coronavirus in India, according to the Ministry of Health and Welfare. As of Tuesday evening, at least 886 people had died.

Investors from dozens of venture capital and private equity firms including Accel, Lightspeed Venture Partners, Bessemer Venture Partners, Matrix Partners India, Kalaari Capital, Eight Roads Ventures, 3One4Capital, Sequoia Capital India, and Tiger Global have personally participated in the initiative.

VCs in India moved quickly last month to warn startups in the country to be aware of the effect the pandemic might have on their businesses — despite the record $14.5 billion Indian startups raised in the past year.

In a joint letter earlier this month, several prominent tech investment funds told startup founders that they may find it especially challenging to raise fresh capital in the next few months as they enter the “worst period.” (They have also requested the government to provide a relief package.)

Several trade bodies including Nasscom and TIE Global that count American tech giants such as Facebook, Google, and Amazon among their members are also supporting ACT Grants. Amazon’s AWS additionally is helping these projects with infrastructure services.

On left, some of the startup founders and other industry figures who have contributed to ACT Grants. On right, names of VC and PE funds whose partners have contributed in their personal capacity

One of the projects to receive the grant has been developed by Pune-based MyLab, a startup that has emerged as one of the biggest manufacturers of test kits in India.

“They manufactured between 20,000 to 25,000 test kits last year. In the past few weeks, the number has ballooned to 300,000,” said Abhiraj Singh Bhal, co-founder and chief executive of Urban Company, which runs an online marketplace for freelance labor.

“We offered them the grant money, but also our expertise in scaling their operation,” said Bhal. ACT Grants also went to another six testing projects, he said.

Grants aren’t going solely to testing projects. StepOne, another grant-winning project, has built a cloud infrastructure to handle over 30,000 calls a day and offer telemedicine services to complement helpline numbers run by state governments that are struggling to keep up with high traffic.

And some of the projects that have received grants are developing masks and other items to supply enough protective gears to the healthcare workers. (A full list of the funded projects and the grant amounts they have received is here.)

There are no strings attached to these grants. Funding a project does not give investors any equity in the developer’s startup, said Prashanth Prakash, a partner at Accel in an interview. And there is a large team that screens and selects projects for providing grants, he said. They have received more than 1,500 applications to date.

An investor, who is not part of ACT Grants, said though the initiative is commendable, he believed this group could have made a bigger impact if they chose to help put food in front of hundreds of millions of Indians who don’t know where their next meal would come from. “There are better ways to be resourceful,” he said, requesting anonymity as he did not want to upset the community.

“That said, the fact that all of these people, many of whom aggressively compete for deals, have come together at all and contributed their own money — and not of their LPs — is unprecedented and they deserve all the praise and support,” he said.

The group’s influence and connection in the industry also means that these projects have better odds of seeing deployment at scale. The group is already engaging with various state governments and the federal government to explore ways to work together — and have started to make inroads, said Accel’s Prakash.

But as the projects scale, the group is seeking for more individuals from across the globe to contribute. “Anyone who wants to help India, one sixth of the world’s population, fight Covid-19 is welcome to contribute,” said Lightspeed’s Khare.

There’s even an international component for people outside of India to contribute. ACT Grants has partnered with United Way, a Virginia-based nonprofit that enables people outside of India to make charitable, tax-deductible donations.



from Amazon – TechCrunch https://ift.tt/3cZ6MjB
via IFTTT

Mostly Clear today!

With a high of F and a low of 15F. Currently, it's 14F and Clear outside. Current wind speeds: 13 from the Southwest Pollen: 0 S...