Ads
Tuesday, March 31, 2020
Partly Cloudy today!
With a high of F and a low of 38F. Currently, it's 49F and Clear outside.
Current wind speeds: 12 from the Southeast
Pollen: 3
Sunrise: March 31, 2020 at 06:36PM
Sunset: April 1, 2020 at 07:15AM
UV index: 0
Humidity: 41%
via https://ift.tt/2livfew
April 1, 2020 at 10:01AM
How to build a bad design system
I didn’t realize this until it was far too late, but one of the biggest mistakes that’s made on a design systems team is a common mismanagement issue: there are too many people in a meeting and they have too many dang opinions.
Is there a conversation about the color of your buttons that’s taking place? Great! Everyone needs a consistent set of colors so that users know what to click and so that designers don’t have to choose from a smorgasbord of options. But the tough question at the beginning isn’t what colors we should choose and when to pick them, but rather this: how many people are in that dang room?
How many people are making decisions about your design system?
Are three people talking about the buttons in your design system? Wonderful. Are there 20? Woof! That’s a serious problem because it shows that far too much energy is being spent on the wrong things; it’s nothing short of mismanagement, in fact.
(This is why I reckon design systems aren’t about design or even about systems. It’s actually about managing people and their time, attention, and focus. But that’s a rant for another day.)
Anyway, the hard call that someone on a large design team will have to make at some point or another is deciding which people need to leave the room. And that sounds really mean, I get it, but it’s the kind thing to do. If everyone has opinions then, first, nothing will get done and, second, you’ll end up causing rifts when some opinions are shunned and others are heard.
It was thoroughly shocking to me when I started my first big design systems project that the more people that joined any given meeting, the less effective we were. It was like the IQ of the room dropped by ten thousand points. And I was also shocked that the hardest problem wasn’t about building the system; learning about TypeScript, making sure components were accessible, doing audits, etc. Instead it was this: the whole too-many-people-in-a-meeting thing.
Everyone cannot possibly be allowed to voice their opinions about every tiny detail of the UI and at some point someone needs to come in and draw a line as to who is allowed to care about what things. That’s not to say that people aren’t allowed to have feedback — feedback should always be welcome! — but one of the main advantages of having a design systems team is to offset all those decisions onto someone else.
I was listening to this livestream of Jason Fried and DHH the other day and they mention that:
If you want to be even less sure about something, all you have to do is ask one more person what their take is.
That’s definitely the feeling I had when too many people were talking about buttons or borders or anything, really. This sort of hopeless feeling that change just isn’t possible. And that you can’t make a decision about something because you need to massage the egos of everyone in the room.
This also reminds me of this great post by Paul Ford about what the web is:
“Why wasn’t I consulted,” which I abbreviate as WWIC, is the fundamental question of the web. It is the rule from which other rules are derived. Humans have a fundamental need to be consulted, engaged, to exercise their knowledge (and thus power), and no other medium that came before has been able to tap into that as effectively.
Working in a big organization is shocking to newcomers because of this, as suddenly everyone has to be consulted to make the smallest decision. And the more people you have to consult to get something done, the more bureaucracy exists within that company. In short: design systems cannot be effective in bureaucratic organizations. Trust me, I’ve tried.
Anyway, the way to fight that is by drawing that line, by kicking people out of meetings that don’t need to be there. It’s really the kindest thing to do because it will make your design system much faster to build, and less stressful for you.
The post How to build a bad design system appeared first on CSS-Tricks.
from CSS-Tricks https://ift.tt/3aCGCCk
via IFTTT
Max Stoiber’s Strong Opinion About Margins
Going with that title instead of the classic developer clickbait version Max used. ;)
We should ban margin from our components.
Don’t use margin?! This thing I’ve been doing my entire career and don’t have any particular problems with?!
Well, that’s not exactly Max’s point. The point is that any particular component doesn’t necessarily know what context it is in, so it also doesn’t know what kind of spacing is necessary around it. His solution? Leave it to a parent component.
I don’t have any particular problem with that. Then again, constructing things can sometimes feel overwhelming when you’ve got a route component wrapping a query component wrapping a styled component wrapping a state machine component wrapping a spacer component wrapping some kind of semantic template. If that sounds like a lot, I bet a lot of y’all’s JavaScript-built codebases nest much deeper than that already.
In this world of component-driven front-ends, we need to make sure we don’t end up with such thick soup we can’t reason through it.
This also reminds me of a bold prediction from Adam Argyle, that the use of margin
will decline entirely as gap
is used more heavily in all-flexbox-and-grid situations.
Direct Link to Article — Permalink
The post Max Stoiber’s Strong Opinion About Margins appeared first on CSS-Tricks.
from CSS-Tricks https://ift.tt/2UdXYiZ
via IFTTT
Daily Crunch: Amazon warehouse workers walk out
Amazon faces worker complaints over its response to the COVID-19 pandemic, General Motors says it’s moving fast to manufacture face masks and we’ve got some numbers quantifying the video conferencing boom. Here’s your Daily Crunch for March 31, 2020.
1. Amazon warehouse workers are walking out and Whole Foods workers are striking
Yesterday, warehouse workers on Staten Island in New York walked off the job in protest of Amazon’s treatment amid the crisis. Meanwhile, workers at Whole Foods, which is owned by Amazon, are organizing a “sick out” strike to demand better protections on the job, Vice reports.
“We have taken extreme measures to keep people safe, tripling down on deep cleaning, procuring safety supplies that are available, and changing processes to ensure those in our buildings are keeping safe distances,” an Amazon spokesperson said. “The truth is the vast majority of employees continue to show up and do the heroic work of delivering for customers every day.”
2. General Motors spins up global supply chain to make 50,000 face masks a day
The automotive giant said in a released statement that it expects to deliver 20,000 masks on April 8 — and soon after, it should be able to produce 50,000 masks a day once the production line is at full capacity.
3. Videoconferencing apps saw a record 62M downloads during one week in March
According to a new report from App Annie, business conferencing apps have been experiencing record growth and just hit their biggest week ever in March, topping 62 million downloads during the week of March 14-21. Meanwhile, social networking video app Houseparty has also seen phenomenal growth in Europe during lockdowns and home quarantines.
4. Uber co-founder Garrett Camp steps back from board director role
Camp is relinquishing his role as a board director and switching to board observer, where he says he’ll focus on product strategy for the ride hailing giant. In his Medium post announcing the shift, Camp signs off by saying he’s looking forward to helping Uber “brainstorm the next big idea.”
5. Leading VCs discuss how COVID-19 has impacted the world of digital health
We asked several of the VCs who participated in our last digital health survey to update us on how COVID-19 is impacting digital health startups and broader healthcare systems around the world. (Extra Crunch membership required.)
6. Niantic squares up against Apple and Facebook with acquisition of AR startup 6D.ai
The studio behind Pokémon Go has acquired 6D.ai, a promising augmented reality startup focused on building software that allowed smartphone cameras to rapidly detect the 3D layouts of spaces around them.
7. Disney+ to launch in India on April 3
The service, available globally in about a dozen markets, will launch in India on Hotstar, one of the most popular on-demand streaming services in the country (it’s also owned by Disney). The company said it is raising the yearly subscription cost of the combined entity, Disney+Hotstar, to Rs 1,499 ($20), up from Rs 999 ($13.20).
The Daily Crunch is TechCrunch’s roundup of our biggest and most important stories. If you’d like to get this delivered to your inbox every day at around 9am Pacific, you can subscribe here.
from Amazon – TechCrunch https://ift.tt/346vefG
via IFTTT
APIs and Authentication on the Jamstack
The first “A” in the Jamstack stands for “APIs” and is a key contributor to what makes working with static sites so powerful. APIs give developers the freedom to offload complexity and provide avenues for including dynamic functionality to an otherwise static site. Often, accessing an API requires validating the authenticity of a request. This frequently manifests in the form of authentication (auth) and can be done either client side or server side depending on the service used and the task being accomplished.
Given the vast spectrum of protocols available, APIs differ in their individual auth implementations. These auth protocols and implementation intricacies add an additional challenge when integrating APIs into a Jamstack site. Thankfully, there is a method to this madness. Every protocol can be mapped to a specific use case and implementing auth is a matter of understanding this.
To illustrate this best, let’s dive into the various protocols and the scenarios that they’re best suited for.
Summon the protocols
OAuth 2.0 is the general standard by which authentication today follows. OAuth is a fairly flexible authorization framework that constitutes a series of grants defining the relationship between a client and an API endpoint. In an OAuth flow, a client application requests an access token from an authorization endpoint and uses that to sign a request to an API endpoint.
There are four main grant types — authorization code, implicit flow, resource owner credential, and client credentials. We’ll look at each one individually.
Authorization Code Grant
Of all OAuth grant types, the Authorization Code Grant is likely the most common one. Primarily used to obtain an access token to authorize API requests after a user explicitly grants permission, this grant flow follows a two-step process.
- First, the user is directed to a consent screen aka the authorization server where they grant the service restricted access to their personal account and data.
- Once permission has been granted, the next step is to retrieve an access token from the authentication server which can then be used to authenticate the request to the API endpoint.
Compared to other grant types, the Authorization Code Grant has an extra layer of security with the added step of asking a user for explicit authorization. This multi-step code exchange means that the access token is never exposed and is always sent via a secure backchannel between an application and auth server. In this way, attackers can’t easily steal an access token by intercepting a request. Google-owned services, like Gmail and Google Calendar, utilize this authorization code flow to access personal content from a user’s account. If you’d like to dig into this workflow more, check out this blog post to learn more.
Implicit Grant
The Implicit Grant is akin to the Authorization Code Grant with a noticeable difference: instead of having a user grant permission to retrieve an authorization code that is then exchanged for an access token, an access token is returned immediately via the the fragment (hash) part of the redirect URL (a.k.a. the front channel).
With the reduced step of an authorization code, the Implicit Grant flow carries the risk of exposing tokens. The token, by virtue of being embedded directly into the URL (and logged to the browser history), is easily accessible if the redirect is ever intercepted.
Despite its vulnerabilities, the Implicit Grant can be useful for user-agent-based clients like Single Page Applications. Since both application code and storage is easily accessed in client-side rendered applications, there is no safe way to keep client secrets secure. The implicit flow is the logical workaround to this by providing applications a quick and easy way to authenticate a user on the client side. It is also a valid means to navigate CORS issues, especially when using a third-party auth server that doesn’t support cross-origin requests. Because of the inherent risks of exposed tokens with this approach, it’s important to note that access tokens in Implicit Flow tend to be short-lived and refresh tokens are never issued. As a result, this flow may require logging in for every request to a privileged resource.
Resource Owner Credential
In the case of the Resource Owner Credential Grant, resource owners send their username and password credentials to the auth server, which then sends back an access token with an optional refresh token. Since resource owner credentials are visible in the auth exchange between client application and authorization server, a trust relationship must exist between resource owner and client application. Though evidently less secure than other grant types, the Resource Owner Credential grant yields an excellent user experience for first party clients. This grant flow is most suitable in cases where the application is highly privileged or when working within a device’s operating system. This authorization flow is often used when other flows are not viable.
Client Credential
The Client Credentials Grant type is used primarily when clients need to obtain an access token outside of the context of a user. This is suitable for machine to machine authentication when a user’s explicit permission cannot be guaranteed for every access to a protected resource. CLIs, and services running in the back end are instances when this grant type comes in handy. Instead of relying on user login, a Client ID and Secret are passed along to obtain a token which can then be used to authenticate an API request.
Typically, in the Client Credential grant, a service account is established through which the application operates and makes API calls. This way, users are not directly involved and applications can still continue to authenticate requests. This workflow is fairly common in situations where applications want access to their own data, e.g. Analytics, rather than to specific user data.
Conclusion
With its reliance on third party services for complex functionality, a well-architected authentication solution is crucial to maintain the security of Jamstack sites. APIs, being the predominant way to exchange data in the Jamstack, are a big part of that. We looked at four different methods for authenticating API requests, each with its benefits and impacts on user experience.
We mentioned at the start that these four are the main forms of authentication that are used to request data from an API. There are plenty of other types as well, which are nicely outlined on oauth.net. The website as a whole is an excellent deep-dive on not only the auth types available, but the OAuth framework as a whole.
Do you prefer one method over another? Do you have an example in use you can point to? Share in the comments!
The post APIs and Authentication on the Jamstack appeared first on CSS-Tricks.
from CSS-Tricks https://ift.tt/2Jvn3jA
via IFTTT
Wide Gamut Color in CSS with Display-P3
Here’s something I’d never heard of before: Display-P3 support in CSS Color Module Level 4 spec. This is a new color profile supported by certain displays and it introduces a much wider range of colors that we can choose from.
Right now the syntax looks something like this in CSS:
header {
color: rgb(0, 255, 0); /* fallback color */
color: color(display-p3 0 1 0);
}
It looks weird, huh? Over on the WebKit blog, Nikita Vasilyev shows how we can see these new colors in Safari’s DevTools:
Back in 2016, Dean Jackson wrote about improving color on the web and why Apple is interested in this much wider color gamut. The general idea is that more accurate colors make for a better and more vibrant user experience.
Also, it looks like all this is only available in Safari right now.
Direct Link to Article — Permalink
The post Wide Gamut Color in CSS with Display-P3 appeared first on CSS-Tricks.
from CSS-Tricks https://ift.tt/2vwyfsJ
via IFTTT
Monday, March 30, 2020
Mostly Clear today!
With a high of F and a low of 30F. Currently, it's 41F and Partly Cloudy outside.
Current wind speeds: 7 from the Northeast
Pollen: 3
Sunrise: March 30, 2020 at 06:38PM
Sunset: March 31, 2020 at 07:14AM
UV index: 0
Humidity: 70%
via https://ift.tt/2livfew
March 31, 2020 at 10:01AM
RSS Stuff
Laura Kalbag wrote How to read RSS in 2020. This would be a nice place to send someone curious about RSS: what it is, what it’s for, and how you can start using it as a reader. I like this callout, too:
Sometimes the content is just an excerpt, encouraging you to read the rest of the content on the original site. I think this defeats the point of providing RSS, where a big benefit is that the reader can customise how the posts display in their feed reader to improve their reading experience.
I absolutely love Khoi Vinh’s writing, but have long been surprised that his feed is truncated. Barely even excerpts. WHY KHOI WHY?!
Laura linked up lire as a reader, and I’d never seen that one before. It’s apparently got good screenreader support.
Louis Lazaris wrote Front-end RSS Feeds (2020 Edition). It has OPML files that are in big groups of feeds that you’ll be subscribed to once their imported into a feed reader (some have that as an option). There is also just a big list too.
Louis likes NewsBlur.
I’m still on my Feedbin + NetNewsWire kick. NetNewsWire for iOS just dropped as well. I installed it and like it OK so far, but I think I still prefer Reeder on iOS which also syncs with Feedbin nicely.
I haven’t had a chance to play with Unread 2 yet for iOS, but I love the idea that it “automatically determines which feeds contain only article summaries” and goes and fetches the rest of the content from the site for you.
The post RSS Stuff appeared first on CSS-Tricks.
from CSS-Tricks https://ift.tt/2UtAiau
via IFTTT
Startups Weekly: A new era for consumer tech
TechCrunch is out hunting for bright spots in the startup world as we all come to grips with the pandemic — particularly where checks are actually being written despite everything.
D2C is back to the future
First up this week, we surveyed top direct-to-consumer investors, and they seemed pretty optimistic despite the struggles of some sector leaders. Here’s Lightspeed Venture Partners Nicole Quinn, for example, on investor activity versus current opportunity:
I would argue it is too weak as investors look at the unit economics of some of the recent IPOs and think that is true for all of D2C. In reality, there are sectors such as beauty where many companies have product margins >90% or true brands such as Rothy’s where there is such a strong word-of-mouth effect and this gives them an unfair advantage with far better unit economics than the average.
Other respondents include: Ben Lerer and Caitlin Strandberg from Lerer Hippeau, Gareth Jefferies from Northzone, Matthew Hartman of Betaworks Ventures, Alexis Ohanian of Initialized Capital and Luca Bocchio of Accel.
Arman Tabatabai has the full investor survey on Extra Crunch, while Connie Loizos has a separate interview with Ohanian over on TechCrunch.
Proptech will be going (more) remote
Arman also ran a popular investor survey on real estate and proptech a few months back, so a virus update edition was warranted given the existential questions facing the future of physical space. Here’s one clarifying explanation from Andrew Ackerman of Dreamit Ventures:
Startups targeting residential landlords and property managers could be big winners. Anything that makes tenants more comfortable like residential tenant amenity platforms (e.g. Amenify) or automates maintenance requests (e.g. Travtus, Aptly), simplifies maintenance itself (e.g NestEgg) or eases operations like package receiving (e.g. Luxer One) are suddenly top of mind.
VC investors have a saying, “Don’t make me think,” and right now, we are thinking hard about what COVID-19 means for our portfolio, so don’t be surprised if we are a little slower than normal to write checks. That said, we are acutely aware of the fact that some of our best returns came from investments made during difficult times. Fortunately, we think quickly.
Read the full thing on Extra Crunch.
A new era for consumer tech
It’s no surprise that SaaS companies are seeing new growth from millions staying at home. But what else is going on besides work? Josh Constine pulls together the rebirth of Houseparty, the integration of Zoom into popular social networks and other trends today to elegantly explain the big picture: social tools actually being used like everyone had hoped(!).
What is social media when there’s nothing to brag about? Many of us are discovering it’s a lot more fun. We had turned social media into a sport but spent the whole time staring at the scoreboard rather than embracing the joy of play. But thankfully, there are no Like counts on Zoom . Nothing permanent remains. That’s freed us from the external validation that too often rules our decision-making. It’s stopped being about how this looks and started being about how this feels. Does it put me at peace, make me laugh, or abate the loneliness? Then do it. There’s no more FOMO because there’s nothing to miss by staying home to read, take a bath, or play board games. You do you.
Check it out on TechCrunch, then be sure to check out our ongoing coverage of where this is headed: virtual worlds(!?). Eric Peckham analyzed the sprawling topic in an eight-part series last month, then sat down for an in-house TechCrunch interview this week to explain how he sees the pandemic impacting the existing trends.
More than two billion people play video games in the context of a year. There’s incredible market penetration in that sense. But, at least for the data I’ve seen for the U.S., the percent of the population who play games on a given day is still much lower than the percent of the population who use social media on a given day.
The more that games become virtual worlds for socializing and hanging out beyond just the mission of the gameplay, the more who will turn to virtual worlds as a social and entertainment outlet when they have five minutes free to do something on their phone. Social media fills these small moments in life. MMO games right now don’t because they are so oriented around the gameplay, which takes time and uninterrupted focus. Virtual worlds in the vein of those on Roblox where you just hang out and explore with friends compete for that time with Instagram more directly.
Some SEM prices are going down due to the pandemic
Danny Crichton put on his data scientist hat for Extra Crunch and analyzed more than 100 unicorns across tech sectors and looked how how the pricing of their keywords has changed due to the pandemic/recession.
The results aren’t surprising — there has been a collapse in prices for almost all ads (with some very interesting exceptions we will get to in a bit). But the variations across startups in their online ad performance says a lot about industries like food delivery and enterprise software, and also the long-term revenue performance of Google, Facebook and other digital advertising networks.
Big tech should do more to help startups now
Besides offering wily developer platforms, I mean. Josh argued on TechCrunch that hosting costs and associated expenses should be spared or delayed by the dominant companies to be nice, and to avoid crushing their own ecosystems.
Google, Amazon and Microsoft are the landlords. Amidst the coronavirus economic crisis, startups need a break from paying rent. They’re in a cash crunch. Revenue has stopped flowing in, capital markets like venture debt are hesitant and startups and small-to-medium sized businesses are at risk of either having to lay off huge numbers of employees and/or shut down. Meanwhile, the tech giants are cash rich. Their success this decade means they’re able to weather the storm for a few months. Their customers cannot.
On the other hand, now is also a good time for mid-sized startups to try to take market share from incumbents who don’t act friendly enough to the rest of the startup world…..
Odds and ends
- Eliot Peper, author of a variety of popular sci-fi and tech fiction stories (and occasional TechCrunch contributor), has a new book out called “Uncommon Stock: Version 1.0” about a small startup that accidentally crosses paths with a drug cartel. Current subscribers to this newsletter will find that the link above takes them to a free download (that ends Sunday).
- I had been planning to moderate a panel at SXSW on the topic of remote work, but other events flipped that on its head. The panel, featuring Katrina Wong, VP of Marketing at Hired, Darren Murph, Head of Remote at Gitlab, and Nate McGuire, Founder of Buildstack, happened on Zoom. And now the video is available here — check out to get key tips on going remote-first from these experts.
Across the week
TechCrunch
Now might be the perfect time to rethink your fundraising approach
How child care startups in the U.S. are helping families cope with the COVID-19 crisis
Private tech companies mobilize to address shortages for medical supplies, masks and sanitizer
One neat plug-in to join a Zoom call from your browser
Extra Crunch
When is it time to stop fundraising?
Slack’s slowing growth turns around as remote work booms
A look inside one startup’s work-from-home playbook
Lime’s valuation, variable costs and diverging categories of on-demand companies
#EquityPod
From Alex:
The three of us were back today — Natasha, Danny and Alex — to dig our way through a host of startup-focused topics. Sure, the world is stuffed full of COVID-19 news — and, to be clear, the topic did come up some — but Equity decided to circle back to its roots and talks startups and accelerators and how many pieces of luggage does an urban-living person really need?
The answer, as far as we can work it out, is either one piece or seven. Regardless, here’s what we got through this week:
- Big news from 500 Startups, and our favorite companies from the accelerator’s latest demo day. Y Combinator is not the only game in town, so TechCrunch spent part of the day peekin’ at 500 and its latest batch of companies. We got into some of the startups that stuck out, tackling problems within the influencer market, trash pickup and esports.
- Plastiq raised $75 million to help people and businesses use their credit card anywhere they want. And no, it wasn’t closed after the pandemic hit.
- We also talked through Fast’s latest $20 million round led by Stripe. Stripe, as everyone recalls, was most recently a topic on the show thanks to a venture whoopsie in the form of a check from Sequoia to Finix.1 But all that’s behind us. Fast is building a new login and checkout service for the internet that is supposed to be both speedy and independent.
- All the Stripe talk reminded us of one of the startups that launched so it could beat it out: Brex. The startup, which has amassed over $300 million in known venture capital to date, recently acquired three companies.
- We chatted through the highlights of our D2C venture survey, focused on rising CAC costs in select channels, the importance of solid gross margins and why Casper wasn’t really a bellwether for its industry.
from Amazon – TechCrunch https://ift.tt/2xvUsYF
via IFTTT
As the U.S. shuts down, StockX’s business is booming, says its CEO
StockX, the high-flying resale marketplace that connects buyers and sellers of sneakers, streetwear, handbags and other collectible items, has seen its fortune rise along with the $6 billion global sneaker resale market, which is part of the broader $100 billion sneaker category. In fact, the company, which was assigned a billion dollar valuation last year, says $1 billion worth of merchandise was sold through its platform last year.
The big question is whether StockX can maintain its momentum. Not only are other rivals biting at the heels of the five-year-old, Detroit-based outfit, which has raised roughly $160 million from investors, but some believe the streetwear “bubble” is on the verge of bursting. Add to the mix a pandemic that’s putting millions of people out of work (and in some cases jeopardizing the health of those still showing up), and you might assume that answer is no.
Yet in an online event earlier this week hosted by StrictlyVC and conducted by Erin Griffith of the New York Times, StockX CEO Scott Cutler insisted that the exact opposite is true. By his telling, business is booming.
Perhaps unsurprisingly, he even argued that StockX looks more durable than the traditional public market right now, and he’s well-acquainted with the latter, having spent nine years as an executive with the New York Stock Exchange earlier in his career.
Some highlights from their chat follow:
Griffith kicked off the interview by asking who is driving the marketplace and whether it might be a small number of power users.
“Seventy-five percent of our customers are under the age of 35. And that customer is a now a wide demographic, I would say two years ago, it was defined in sneakers as a “sneakerhead,” meaning somebody that collected sneakers and bought and sell sneakers specifically. But today, that demographic, if you looked at millennials and Gen Z, as an example, 40% of them would define themselves as sneakerheads, and so that’s male and female, and this demographic is around the world. We have customers in over 170 countries and territories.”
Cutler went on to say that StockX is very well-positioned because, unlike with a lot of goods that people might find through Amazon or a Google search and thus compete on some level with them, StockX is itself the “first” shopping destination for most of its customers.
“Even the brands can’t provide access to [what’s for sale at StockX]. So that consumer comes to us as a first destination; they don’t go to those brands to shop . . . That means that we have an incredible opportunity then to deliver exactly what that customer wants at the beginning of the journey, which is very rare in e-commerce, to be that first point of destination.”
Naturally, Griffith asked how the virus has impacted StockX’s bottom line. Cutler said it’s been “great for our business and growth.”
“The recent events over the last couple of months has been a benefit to our business. We’ve had more and more traffic and buyers coming to our site because in some respects, traditional retail in some geographies is not available. We thought we’ve always been a marketplace of scarcity, but now you can’t actually go into a real retail location, so you’re coming to StockX. So on the one hand, it’s been great for our for our business and for our growth.”
Cutler also acknowledged that to accommodate that growth, StockX needs people in the warehouses where sellers send goods so that StockX can authenticate them before shipping out to buyers. He said that StockX has “people in those centers that are coming to work right now, even in places like New Jersey that are certainly impacted.” He called it a “balancing” act of trying to ensure its team members feel “safe” while continuing to operate its business at scale around the world.
As for how, exactly, StockX is ensuring these employees are safe, he said that StockX is “operating under all of the local rules and regulations that we have in all the different places where we operate.” As an added sweetener, he said the company recently gave a “spot bonus” and increased the salaries of employees at its authentication centers by 25%.
And what happens if the warehouses are ordered to shut down or employees begin showing up with the virus? Griffith asked what StockX’s backup plan entailed.
Here, Cutler noted the company’s multiple authentication centers, saying that “in the event that we have to reroute traffic from one authentication center to the other, we will do that. We’ve been operating that way.”
He also said that business continuity planning is currently a “stand-up every single day [wherein] we go through site safety and security and any incidents that come up and we’re making decisions as a team every day on some of that routing logic.”
Griffith wondered what kinds of conversations StockX’s venture investors are having with the company, given everyone’s focus right now on belt-tightening. (StockX is backed by DST Global, General Atlantic, GGV Capital Battery Ventures, and GV, among others.)
Cutler acknowledged that the “future, in some respects, is uncertain for many of us, in that you don’t know how long this is going to last.” He said that as the company looks to the future, it’s trying to factor in “different scenarios of macro shifts in demand” but that as it looks at “macro shifts in the supply chains” it has reason for optimism. He pointed to China, for example, where many supply chain factories went down this winter and are now back up to 80% or 90% of their previous capacity.
Asked if StockX is recession-proof should the downturn last (Griffith noted that some of the pricier sneakers on the platform are selling for thousands of dollars), Cutler suggested that he hopes so for the sake of the businesses that are run off its platform.
Said Cutler, “For a lot of our sellers, you have to appreciate that they depend on StockX for their livelihood. They actually may be running a very sophisticated business that is selling sometimes thousands of pairs of sneakers every single day to [maybe] a student who’s using StockX to fund their education.”
Cutler also compared StockX to the public equities markets, insisting that they aren’t so different and that, to his mind, StockX might even be the safer bet right now.
“We actually have buyers who see this time as a market opportunity and see the price of a rare Jordan 1 [shoe] that’s maybe coming down, and they say, ‘Hey, this is short lived,’ much like somebody may say, ‘Hey, the market is off a little.’
“They’re putting their money in sneakers,” Cutler continued, adding: “My portfolio right now in sneakers is still up on the year. That’s more than I can say about the S&P.”
from Amazon – TechCrunch https://ift.tt/3by6e3q
via IFTTT
gqless
This is so cool. I mean, GraphQL is already cool. It’s very satisfying to write an understandable-looking query for whatever you want and then use that data in templates.
But what if you didn’t have to write the query at all? What if you just wrote the templates pretending you already had the data, and the query built itself? I haven’t even tried this project yet but it feels like how things should be.
Reminds me of how Perch CMS doesn’t ask you to model data up front. You build page templates, and the CMS creates data entry pages based on the data you need in the template.
Direct Link to Article — Permalink
The post gqless appeared first on CSS-Tricks.
from CSS-Tricks https://gqless.dev/
via IFTTT
Amazon warehouse workers are walking out and Whole Foods workers are striking
Amazon, the e-commerce giant that has fared well financially amid the COVID-19 pandemic, is facing a bevy of worker strikes. Today, warehouse workers on Staten Island in New York walked off the job in protest of Amazon’s treatment amid the crisis.
#BREAKING: Over 100 Amazon employees at JFK8 warehouse walk off the job over @amazon’s dangerous response to protect workers from COVID19 in Staten Island.
#AmazonStrike #WhatWeNeed pic.twitter.com/z0mrUWmPfw
— Make the Road NY (@MaketheRoadNY) March 30, 2020
“Like all businesses grappling with the ongoing coronavirus pandemic, we are working hard to keep employees safe while serving communities and the most vulnerable,” an Amazon spokesperson told TechCrunch. “We have taken extreme measures to keep people safe, tripling down on deep cleaning, procuring safety supplies that are available, and changing processes to ensure those in our buildings are keeping safe distances. The truth is the vast majority of employees continue to show up and do the heroic work of delivering for customers every day.”
In solidarity with warehouse workers, tech workers at Amazon are demanding the company provide fully paid family leave for people who miss work, provide fully paid leave to all Amazon workers, close facilities immediately following contamination, ensure full paid leave for workers whose jobs are impacted by such closures and ensure everyone has unlimited time to take care of their health.
“Recognizing the urgency of the moment, tech workers are going beyond asking Amazon to take action and are pledging not to work for Amazon if it fails to act,” the DC Tech Workers Coalition wrote in a petition. “We also pledge to ask organizations in our communities such as universities and conferences to not accept Amazon as a sponsor or participant in events.”
Meanwhile, workers at Whole Foods, which is owned by Amazon, are organizing a “sick out” strike tomorrow to demand better protections on the job, Vice reports.
According to Vice, Whole Foods workers will call in sick tomorrow and demand paid sick leave for those who stay at home or self-quarantine during the pandemic. They will also demand free coronavirus testing for employees and hazard pay.
Led by group Whole Worker, the sick-out was originally planned for May 1, but was moved up in response to reports that workers have started getting sick and testing positive for COVID-19.
“As this situation has progressed, our fundamental needs as workers have become more urgent,” the group wrote on its campaign page. “COVID-19 poses a very real threat to the safety of our workforce and our customers. We cannot wait for politicians, institutions, or our own management to step in to protect us.”
This action will come one day after Instacart workers are refusing to shop and deliver groceries until the company meets their demands. Shoppers’ current demands are offering hazard pay of $5 extra per order, changing the default tip to 10%, and extending the sick pay policy to those who have a doctor’s note for a pre-existing condition that may make them more susceptible to contracting the virus.
“For the sake of public health and worker safety, every non-union grocery worker must speak out,” United Fodo and Commercial Workers International Union President Marc Perrone said in a statement. “If Amazon, Instacart, and Whole Foods are unwilling to do what is right to protect their workers and our communities, the UFCW is ready to listen and do all we can to help protect these brave workers from irresponsible employers who are ignoring the serious threat posed by the rapidly growing coronavirus outbreak.”
from Amazon – TechCrunch https://ift.tt/3dK2huu
via IFTTT
4 CSS Grid Properties (and One Value) for Most of Your Layout Needs
CSS Grid provides us with a powerful layout system for websites. The CSS-Tricks guide gives you a comprehensive overview of Grid’s properties with layout examples. What we’re going to do here is a reverse approach to show you the smallest possible set of grid properties you need to know to meet most of your layout needs.
These five properties will get you up and running:
display
(for thegrid
value)grid-template-columns
grid-gap
grid-auto-flow
grid-column
/grid-row
Here’s how simple it is. Let's assume you want to implement the following layout for small, medium and large screens.
This is the markup we’ll be working with:
<!-- Stuff before -->
<nav class="container-nav">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</nav>
<div class="container-main">
<section class="item item-type-a"></section>
<section class="item item-type-b"></section>
<section class="item item-type-b"></section>
<section class="item container-inner">
<section class="item-inner"></section>
<section class="item-inner"></section>
<section class="item-inner"></section>
<section class="item-inner"></section>
<section class="item-inner"></section>
</section>
</div>
<!-- Stuff after -->
If we apply a few baseline styles, this is what we get, which is already sufficient for small screens:
Now we can get into the grid properties!
Use display: grid to divide the page into independent layout containers
First, we need to determine which parts of the page should be aligned with grid layouts. It is possible to define a single grid layout for the whole page. However, for websites with a very complex structure (e.g. news websites), handling a large grid quickly becomes complicated to wrangle. In this case, I recommend breaking things down into several, independent grid containers.
Like this:
Where do you draw the line between what is and isn’t a grid? Here’s a personal rule of thumb I follow:
If the layout in a particular part of the page does not fit into the grid of an adjacent or surrounding part of the page, make that part its own grid container.
I have drawn the grid lines into the page section with the class .container-main
in the following image You may notice that the section with the .container-inner
class from the markup does not fit exactly into the grid of rows.
Here’s another possible layout where the small sections fit into the surrounding grid if a finer line raster is chosen. A separate grid container is not absolutely necessary here.
To kick this off, let’s .container-main
into a grid container. This is the basic building block for CSS Grid — turning an element into a grid container with the display
property:
.container-main {
display: grid;
}
We'll want to do the same with our other grid containers:
.container-inner {
display: grid;
}
.container-nav {
display: grid;
}
Use grid-template-columns to define the required columns
Next, we’re going to define the number of columns we need in each grid container and how wide those columns should be. My guideline for the number of columns: use the smallest common multiple of the maximum number of columns required for the different screen sizes.
How does that work? The .container-main
element has a total of two columns on medium-sized screens. If we take that and multiply it by the number of columns on large screens (three), we get a total of six columns.
We can do the same for our navigation, the .container-inner
element. There are three columns on medium-sized screens, which we multiple by one column on large screens to get a total of three columns.
The .container-nav
element provides no number of columns. In this case, the grid system should automatically adjust the number of columns to the number of menu elements. It’s common to add or remove items in a navigation, and it’d be great if it responded accordingly, which is something grid can help us with a little later on.
OK, so we defined the number of columns for each grid container. Let’s use the grid-template-columns
property to set those into place. But, first a couple of minor details:
- The
grid-template-columns
property is only used on the grid container. In other words, you won’t find it being used (at least correctly) on a grid item inside the container. - The property accepts a bunch of different values that both define the number of columns and how wide they should be. The one we’re interested in here is the fractional (
fr
) unit. I’d highly suggest checking out Robin’s overview because it’s unique to grid and does an amazing job doing calculations to decide how grid elements fit inside a grid container.
We need six equal-width columns in .container-main
. We can write that like this:
.container-main {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}
Or, we can turn to the repeat()
function to simplify it into something more readable:
.container-main {
display: grid;
grid-template-columns: repeat(6, 1fr);
}
Let’s take that knowledge and apply it to our .container-inner
element as well, which we decided needs three columns.
.container-inner {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
Use grid-gap to add spacing between grid items
By default, grid uses all the space it has in a grid container to fit in grid items. Having elements flush next to one another might be a design requirement, but not for the particular layout we’re making. We want some breathing room between things!
We have the grid-gap
property for that. Again, this is a property that’s just for grid containers and what it does is create vertical and horizontal spacing between grid items. It’s actually a shorthand property that combines the vertical spacing powers of grid-row-gap
and horizontal spacing powers of grid-column-gap
. It’s handy that we’re able to break things out like that but, in times like this where we’re working with the same amount of spacing in each direction, the shorthand grid-gap
is much nicer to write.
We want 20px
of space between grid items in .container-main
, 10px
of space in .container-inner
, and 5px
of space in .container-nav
. No problem! All it takes is a one-liner on each grid container.
.container-main{
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-gap: 20px;
}
.container-inner {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.container-nav {
display: grid;
grid-gap: 5px;
}
Use grid-column and grid-row to determine the size of the individual grid items
Now it is time to put the layout into the shape we want it!
First is the grid-column
property, which allows us to extend a grid item across n columns, where n is the number of columns to span. If you’re thinking this sounds an awful lot like the rowspan
attribute that lets us extend cells across multiple rows in HTML tables, you wouldn’t be wrong.
It looks like this when we use it on a grid .item
in our .container-main
element, and on the .inner-item
elements in .container-inner
:
.item {
grid-column: span 6;
}
.item-inner {
grid-column: span 3;
}
What we’re saying here is that each item span six rows in our main container and three rows in our inner container — which is the total number of columns in each container.
An interesting thing about CSS Grid is that we are able to name the lines of the grid. They come with implicit names out of the box but naming them is a powerful way to distinguish between the starting and ending lines for each column on the track.
We can change the number of columns and rows the items should span at different breakpoints:
@media screen and (min-width: 600px) {
.item-type-b {
grid-column: span 3;
}
.item-inner {
grid-column: span 1;
}
}
@media screen and (min-width: 900px) {
.item {
grid-column: span 2;
grid-row: span 2;
}
.item-type-b{
grid-row: span 1;
}
.item-inner{
grid-column: span 3;
}
}
Using grid-auto-flow to control the placing of the elements
CSS Grid places elements one row after the other. This is why the result in our example looks like this at the moment:
A column-by-column placement can be achieved by setting the grid-auto-flow
property to column (row
is the default value). Our layout will profit from column-wise placement in two cases. First, it makes our menu items finally appear in a horizontal orientation. Secondly, it brings the elements of the container class into the desired grouping.
The final result
Conclusion: More or less specification?
The grid system allows us to work under the motto, “make as many specifications as necessary, but as few as possible.” We’ve only covered a few of the specifications necessary to turn elements into a CSS grid container and the items inside it into grid items for the sake of showing just how little you need to know to build even complex layouts with CSS Grid.
CSS Grid supports additional use cases where:
- We want to make even fewer specifications in order to instead rely more on automatic positioning.
- We want to make even more specifications in order to determine more details of the resulting layout.
If the first case applies, then it’s worth considering the following additional grid options:
- When creating the grid with
grid-template-columns
, you can have the grid system automatically determine the width of individual columns with the auto keyword or adapt it to the existing content with the settingsmin-content
,max-content
, orfit-content
. - You can let the grid system automatically determine the number of required columns with the help of
repeat
,auto-fill
,auto-fit
, andminmax
. Even media queries can become redundant and these tools help make things flexible without adding more media queries.
Here are a couple of articles on the topic that I recommend: Becoming a CSS Grid Ninja! and Auto-Sizing Columns in CSS Grid: auto-fill vs. auto-fit.
If the second case applies, CSS Grid offers even more settings options for you:
- You can explicitly specify the width of the columns in the unit of your choice (e.g.
px
or%
) using thegrid-template-columns
property. In addition, the propertygrid-template-rows
is available to define the number and width of rows, should there be a specific number of them. - You can also define specific column or row numbers for positioning as values for
grid-column
andgrid-row
(or use the propertiesgrid-column-start
,grid-column-end
,grid-row-start
, orgrid-row-end
).
And we haven’t even gotten into CSS Grid alignment! Still, the fact that we can accomplish so much without even broaching that topic shows how powerful CSS Grid is.
The post 4 CSS Grid Properties (and One Value) for Most of Your Layout Needs appeared first on CSS-Tricks.
from CSS-Tricks https://ift.tt/39qWSEX
via IFTTT
How They Fit Together: Transform, Translate, Rotate, Scale, and Offset
Firefox 72 was first out of the gate with "independent transforms." That is, instead of having to combine transforms together, like:
.el {
transform: rotate(10deg) scale(0.95) translate(10px, 10px);
}
...we can do:
.el {
rotate: 10deg;
scale: 0.95;
translate: 10px 10px;
}
That's extremely useful, as having to repeat other transforms when you change a single one, lest remove them, is tedious and prone to error.
But there is some nuance to know about here, and Dan Wilson digs in.
Little things to know:
- Independent transforms happen first. So, if you also use a transform, that can override them if the same transform types is used.
- They all share the same
transform-origin
. - The
offset-*
properties also effectively moves/rotates elements. Those happen after independent transforms and beforetransform
.
Direct Link to Article — Permalink
The post How They Fit Together: Transform, Translate, Rotate, Scale, and Offset appeared first on CSS-Tricks.
from CSS-Tricks https://ift.tt/2T1HkTd
via IFTTT
Sunday, March 29, 2020
Mostly Cloudy today!
With a high of F and a low of 33F. Currently, it's 41F and Partly Cloudy outside.
Current wind speeds: 8 from the Southeast
Pollen: 3
Sunrise: March 29, 2020 at 06:39PM
Sunset: March 30, 2020 at 07:13AM
UV index: 0
Humidity: 43%
via https://ift.tt/2livfew
March 30, 2020 at 10:00AM
Elizabeth Warren for President open-sources its 2020 campaign tech
Democratic senator Elizabeth Warren may have ended her 2020 presidential run, but the tech used to drive her campaign will live on.
Members of her staff announced they would make public the top apps and digital tools developed in Warren’s bid to become the Democratic nominee for president.
“In our work, we leaned heavily on open source technology — and want to contribute back to that community…[by] open-sourcing some of the most important projects of the Elizabeth Warren campaign for anyone to use,” the Warren for President Tech Team said.
In a Medium post, members of the team — including chief technology strategist Mike Conlow and chief technology officer Nikki Sutton — previewed what would be available and why.
“Our hope is that other Democratic candidates and progressive causes will use the ideas and code we developed to run stronger campaigns and help Democrats win,” the post said.
Warren’s tech team listed several of the tools they’ve turned over to the open source universe via GitHub.
One of those tools, Spoke, is a peer to peer texting app, originally developed by MoveOn, which offered the Warren Campaign high volume messaging at a fraction of the costs of other vendor options. The team used it to send four million SMS messages on Super Tuesday alone.
Pollaris is a location lookup tool with an API developed to interface directly with Warren’s official campaign website and quickly direct supporters to their correct polling stations.
Warren’s tech team will also open-source Switchboard (FE and BE) — which recruited and connected volunteers in primary states — and Caucus App, a delegate calculating and reporting tool.
The campaign’s Redhook tool took in web hook data in real time and experienced zero downtime.
“Our intention in open sourcing it is to demonstrate that some problems campaigns face do not require vendor tools and are solved…efficiently with a tiny bit of code,” said the Tech Team.
Elizabeth Warren ended her 2020 presidential bid on March 4 after failing to win a primary. Among her many policy proposals, the Massachusetts senator had proposed breaking up big tech companies, such as Google, Facebook and Amazon.
Her campaign will continue to share the tech tools they used on open source channels.
“We’ll have more to say in the coming weeks on all that we did with technology on our campaign,” the team said.
from Amazon – TechCrunch https://ift.tt/3dFWe9Z
via IFTTT
Saturday, March 28, 2020
Clear today!
With a high of F and a low of 25F. Currently, it's 32F and Clear outside.
Current wind speeds: 6 from the West
Pollen: 3
Sunrise: March 28, 2020 at 06:41PM
Sunset: March 29, 2020 at 07:12AM
UV index: 0
Humidity: 68%
via https://ift.tt/2livfew
March 29, 2020 at 10:00AM
Creating a Pencil Effect in SVG
Scott Turner, who has an entire blog "Exploring procedural generation and display of fantasy maps", gets into why vector graphics seems on these surface why it would be bad for the look of a pencil stroke:
Something like this pencil stroke would require many tens of thousands of different elements. Basically each little blob of gray in that image would be separately defined.
But, SVG filters to the rescue.
It's all about <feTurbulence>
.
Direct Link to Article — Permalink
The post Creating a Pencil Effect in SVG appeared first on CSS-Tricks.
from CSS-Tricks https://ift.tt/38ncEBd
via IFTTT
Friday, March 27, 2020
Snow/Wind Late today!
With a high of F and a low of 30F. Currently, it's 39F and Light Rain outside.
Current wind speeds: 12 from the North
Pollen: 3
Sunrise: March 27, 2020 at 06:42PM
Sunset: March 28, 2020 at 07:11AM
UV index: 0
Humidity: 90%
via https://ift.tt/2livfew
March 28, 2020 at 10:00AM
Target pauses plans for grocery pickup amid COVID-19 outbreak
Target is pausing its plans to offer curbside pick-up of groceries and alcoholic beverages, citing the COVID-19 outbreak as the key factor in its decision to delay the launch. Although groceries via Order Pickup and Drive Up would be valuable services at a time when people are being asked to distance themselves from others to prevent the spread of the novel coronavirus, Target says it won’t have time to train employees on these new processes right now.
Like many retailers and grocers, Target is impacted by the COVID-19 outbreak, which is significantly changing the way people shop. People are more likely to buy in bulk to minimize trips to the store. And many are panic-buying critical supplies, like toilet paper. Target says it has seen a sustained surge in both traffic and sales, particularly in food and beverage and other household essentials, like cleaning supplies and baby products. Other categories, including apparel and accessories, have slowed.
The launch of any new system or process takes time to adjust to, even when there’s ample time to train. But Target’s staff today is working at increased levels — its March sales are 20% higher than March of last year, as a point of comparison.
Like everywhere, Target also faces staffing concerns as people scramble to figure out childcare when schools are closed. It will have to reassess employee schedules on the fly, as staff members leave unexpectedly when they or a family member gets sick. There also have been a small number of cases where Target employees themselves have tested positive for the virus. And as the outbreak spreads, more will likely be exposed, given their continual contact with the public.
To address these concerns, Target is cleaning its stores regularly, promoting social distancing, wiping down carts, adding signage to guide guests, cleaning checklanes after each transaction and more. It’s also stopping in-store returns for three weeks, but will honor later returns when the ban is lifted. And it’s pausing its small-format store openings and remodels planned for this year — shifting those to 2021, given the chaos around its business today.
To assist employees, Target announced that it’s investing more than $300 million in added wages, a new paid leave program, bonus payouts and relief fund contributions.
Though Target won’t roll out curbside fresh grocery pickup now, it continues to operate the grocery delivery business Shipt. This and other grocery delivery services are booming due to the outbreak. Instacart this week said it was hiring 300,000 more full-service shoppers due to coronavirus. Walmart, CVS, Amazon and other U.S. employers are hiring more than 800,000 new workers due to the COVID-19 impacts.
from Amazon – TechCrunch https://ift.tt/39koYBO
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...
-
So you want an auto-playing looping video without sound? In popular vernacular this is the very meaning of the word GIF . The word has stuck...
-
With a high of F and a low of 31F. Currently, it's 37F and Cloudy outside. Current wind speeds: 7 from the Northeast Pollen: 0 S...
-
Last year , we kicked out a roundup of published surveys, research, and other findings from around the web. There were some nice nuggets in ...