ma

Gavin Newsom Signs Executive Order to Mail Every Voter a Ballot for November Elections

California Governor Gavin Newsom announced Friday that he had signed an executive order to mail ballots to the state’s 20.6 million registered voters, citing potential health risks due to the ongoing coronavirus pandemic.“There’s a lot of excitement around this November’s election in terms of making sure that you can conduct yourself in a safe way, and make sure your health is protected,” Newsom said Friday. In March, the state allowed ballots to be mailed in for its primary, which saw a record-high of 72 percent of all ballots that were cast by mail.California Secretary of State Alex Padilla, who heads the state’s elections, commended the move “It’s great for public health, it’s great for voting rights, it’s going to be great for participation,” he said. California already allows for generous absentee voting, passing a 2002 decision which gives voters the option to request permanent voting by mail, regardless of the reason.While Newsom’s decision applies only to the November election, it could set a precedent for other Democratic states, with voting by mail quickly becoming a partisan issue. It comes after the state’s lawmakers and local officials requested the measure, saying coronavirus will severely hamper voting efforts, a complaint echoed by prominent Democrats.“Why should we be saying to people, ‘Stand in line for hours,’ when we don’t even want you leaving the house?” House Speaker Nancy Pelosi said in April. But President Trump has repeatedly slammed calls for mail-in voting, saying last month that it lets “people cheat” and involves “a lot of dishonesty.”Newsom said that his order would still allow an “appropriate number” of in-person voting sites, saying that some voters, including those that are disabled, require technological help to cast a ballot.





ma

Was the coronavirus made in a Wuhan lab? Here's what the genetic evidence shows

Despite President Trump's statements that the coronavirus was released from a laboratory in Wuhan, scientist say the evidence points to a natural origin.





ma

Idaho governor appeals to Supreme Court to stop trans inmate's surgery

A lower court had ruled that the prisoner’s gender-affirming surgery is a medical necessity, and denying it constituted a violation of the Eighth Amendment.





ma

‘Please Come Get Me’: Fatal Indianapolis Police Shooting May Have Aired on Facebook

An Indianapolis man was fatally shot by police after a high-speed chase in an incident that appeared to have been broadcast on Facebook Live, sparking outcry and protests throughout the night.More than 100 people from the community gathered at the scene of the shooting to express their outrage Wednesday night, chanting “No justice, no peace!” as they demanded answers from police about the latest officer-involved death. Protestors continued demonstrating Thursday, with dozens marching through the streets before congregating outside of the Indianapolis Metropolitan Police Department headquarters. “We deserve better,” one community activist told The Indianapolis Star. “I am disgusted, horrified, tired, and angry.”‘You’re Gonna Kill Me’: Body-Cam Footage Shows Cops Mocking Dallas Man as He DiesThe Indianapolis Metropolitan Police Department said the incident began around 6 p.m. when officers began pursuing a man who they observed to be driving recklessly. After the driver exited the car, an officer chased him on foot before gunfire was “exchanged” at around 6:14 p.m., police said in a press release, without revealing who fired first. In the unconfirmed Facebook video of the incident, at least 13 or 14 gunshots can be heard. In another video obtained by The Indianapolis Star, a detective who arrived after the shooting can be heard saying: “Looks like it’s going to be a closed casket, homie.” “We are aware of inappropriate comments made by an IMPD detective” on the live stream, Indianapolis MPD Chief Randal Taylor said at a Thursday press conference. “Let me be clear: These comments are unacceptable and unbecoming of our police department.” While Taylor did not confirm the authenticity of the Facebook live stream, he did stress he was “concerned with the things on social media,” stating he thinks that some comments online “lack trust as to what occurred.” Authorities have not yet identified the name of the driver but said he and the officer who shot him were both black men. Family members identified the driver to local media outlets as 21-year-old Dreasjon “Sean” Reed. The officer who fired the fatal shot has been placed on administrative leave pending further investigation.“I feel like to lose a life, especially at a young age, there’s never going to be justice,” Jazmine Reed, the 21-year-old’s sister, told WISH, adding that her family watched the pursuit and shooting on Facebook as it happened. “Cause he’s gone—there’s never justice for that. Even if somebody was to get time or whatever for it, it’s never going to be justice because he’s never coming back.” The sister said she drove to the scene after watching the video, not knowing whether her brother was still alive. “I shouldn’t have to bury my little brother,” she added.The Indianapolis MPD said the incident began after two officers saw a Toyota Corolla being driven “recklessly.” They followed the driver in unmarked cars and asked for assistance as they said the vehicle continued “at a high rate of speed” and the operator was “disobeying all traffic signals” and nearly hit another car. In the Facebook video, titled “High-speed case lol,” Reed, who is shirtless, appears nervous as he speaks to his 2,000 viewers and points his camera to show the moving police cars behind him.“Almost lost him y’all!” he says. “Almost got rid of his ass!”Video Shows Florida Deputy Violently Yanking Middle Schooler’s Hair During ArrestAt one point, he appears to pull over and stop his car. Authorities say the driver disregarded “the officers’ verbal commands to stop” and ran out of the car, prompting an officer to chase him on foot.“I’m on 62nd and Michigan,” Reed says in the video, just before exiting the vehicle. “I just parked... I’m gone.” He added: “Please come get me! Please come get me! Please come get me!”Reed can then be heard running for approximately 30 seconds, as a voice behind him yells: “Stop! Stop!”“Fuck you,” Reed replies. Indianapolis Metropolitan Police Department Assistant Chief Chris Bailey said during a Wednesday news conference that the officer first used his taser, but it’s unclear if it worked and is not seen on the purported video from the scene.“It is believed at this time that shots were fired by both the officer and the suspect,” Bailey said.In the video, Reed appears to start screaming before collapsing on the ground. About eight seconds later, 11 or 12 gunshots can be heard in rapid succession. The live stream did not show Reed talking about a gun or firing a weapon. After a brief pause, two more shots can be heard as the camera faces the sky while the opening lyrics of Young Dolph’s “16 Zips” appears to be playing off the phone. By the end of the gunfire, more than 4,000 people had tuned in to watch the live stream, according to the Star.Bailey said Indianapolis Emergency Medical Services arrived shortly after and pronounced the driver dead at the scene. The officer was uninjured.Taylor on Thursday stated that a “loaded gun” was recovered at the scene that appeared to have been fired twice and that it belonged to the driver. He added that disciplinary action will be taken against the detective who made the “casket” comment.After the incident, the Facebook Live video, which has been widely shared on social media, was removed from the victim’s account, Bailey said. Bailey added that authorities are aware of Facebook videos.Cop Charged With Assault After Video Shows Him Slamming Suspect’s Head Into Pavement“Both the officers and the detectives have done their due diligence in preserving that evidence through the proper legal channels, and if it’s associated that there’s information on there that’s appropriate for the investigation, they’ll utilize it,” he said.Taylor added Thursday the police officers involved in the shooting were not wearing body cameras, but he has no reason to believe they acted inappropriately. But after the press conference, dozens of protesters took to the streets demanding more police action, shouting “all lives matter,” as drivers stopped their cars and put their fists out their windows in solidarity.About eight hours after that shooting, Indianapolis police fatally shot another man during an investigation into a burglary at an apartment complex. Authorities said that around 1:30 a.m. Thursday, four officers responded to the apartment and were immediately fired upon by a man with a rifle. All four officers “returned fire” and hit the man, who was pronounced dead at the scene, police said in a news release. In response to both incidents, Taylor stressed at a Thursday press conference that he will provide residents with “the truth whether we are right or wrong.”“We have long talked about the kind of police department we want to be—one that serves with the community, that's not policed at—a police department that is trusted, one where every resident feels a comfortable calling,” Taylor said. “We recognize and are saddened that this mutual trust that is so valued has been eroded over the last 24 hours.”Investigators are now conducting a separate investigation into that shooting, and police said there’s evidence the victim called 911 with the intent of ambushing the responding officers. “Our hearts this morning are with the families who lost loved ones during these tragic events. All of us are trying to make a new normal in an un-normal time. Incidents like these do not help restore normalcy to our community,” Chrystal Ratcliffe, the president of the NAACP branch in Indianapolis said in a statement.The American Civil Liberties Union of Indiana on Thursday called for a “prompt, thorough, and transparent investigation” into Reed’s death.“Whether someone is unarmed or armed, compliant or resistant, police officers should be properly trained in de-escalation tactics and turn to the use of force only as a last resort, not a first option,” the statement read. Read more at The Daily Beast.Got a tip? Send it to The Daily Beast hereGet our top stories in your inbox every day. Sign up now!Daily Beast Membership: Beast Inside goes deeper on the stories that matter to you. Learn more.





ma

Woman heartbroken by Smithfield Foods' response to grandfather's death from coronavirus

“I want you to know he died in the hospital alone, isolated, and scared,” she wrote in an Instagram message to Smithfield Foods.





ma

Man hit by plane, killed on Austin-Bergstrom airport runway, officials say

A person died Thursday night after being hit by a plane as it was landing at Austin-Bergstrom International Airport, according to airport officials.





ma

Virginia Man Faked His Own Death in Ridiculously Elaborate Plot to Avoid Bankruptcy

The wild plot involved faking his own death, stealing the identity of a Florida attorney, using an app to disguise his voice, and pretending to have prostate cancer, bone cancer, and a brain aneurysm.Unemployed Virginia man Russell Louis Geyer was so determined to hide his assets in bankruptcy proceedings, he even threw his own wife under the bus—duping her into handing over $70,000 and using her email address to inform an attorney he was dead. Geyer, 50, pleaded guilty on Wednesday to contempt of court, bankruptcy fraud, wire fraud, and aggravated identity fraud. He faces up to life in prison.“In an effort to game the bankruptcy system, Mr. Geyer devised a made-for-TV plot that ultimately collapsed under its own weight,” U.S. Attorney Thomas Cullen said in a statement.Minnesota Man Killed Wife, Buried Her Under Home, Then Faked Her Disappearance: Court DocsGeyer and his wife, Patricia Sue Geyer, from Saltville, filed for voluntary bankruptcy in late 2018, listing liabilities of $532,583.80, according to court documents.They were behind on payments for three of their four vehicles, for both their home and a rental property they owned, and for most of their furniture. They hadn’t paid electricity bills, bank overdrafts, credit card bills, and dozens of medical bills, and more than 50 creditors were chasing them for everything from their 65-inch TV to their Kawasaki ZX1000 motorbike. At one point in the bankruptcy proceedings, Geyer told his lawyer, John Lamie, he’d gone to the Mayo Clinic in Florida to be treated for prostate cancer, but it had spread to his bones and he intended to stop treatment.Four months later, according to a criminal complaint, he told Lamie he was now in a hospice in Florida after treatment failed. He said his wife was there, too, and had undergone bypass surgery for a heart condition. She wasn’t cleared to drive back to Virginia, he claimed.Then, a few days before September 5, 2019, when Geyer was due to appear in person at a bankruptcy hearing, Lamie received an email from Geyer’s wife. Her husband was dead, it said. He’d apparently had a brain aneurysm in June while being transported back from Florida after his chemotherapy treatments.Around the same time, Geyer’s attorney got a threatening email from an attorney in Florida who said he’d sold the assets that debtors were trying to recover in the bankruptcy case. “[Patricia] doesn’t know anything about this, and neither does Russell,” the email said. “I have complete control of Russell and told him to kill himself. You will not find him in time.” He ended the email by saying: “I am on a plane out of the country.”However, investigators later found that the Florida attorney whose name was used in the email existed but had nothing to do with the case. Geyer had simply set up a bogus email account using his name.‘Please Come Get Me’: Fatal Indianapolis Police Shooting May Have Aired on Facebook He even used the attorney’s identity to fleece his wife, a registered nurse who earned $3,200 a month, for $70,000. Geyer told his wife he’d won a $1 million settlement in Florida in an unrelated court case but needed her to pay $70,000 in legal fees for the money to be released. He used the bogus email address and an app that disguised his voice to pose as the Florida attorney and confirm the settlement was imminent. “It was all untrue,” the U.S. Attorney’s Office for the Western District of Virginia said in a statement on Thursday.The plot unraveled on Sept. 4, the day before the bankruptcy hearing, when a process server visited the couple’s Saltville home to give them a notice to appear.The home was empty but, just as the process server was leaving, Geyer and his wife arrived home in their car and got out—far from the Florida hospice he had claimed to be languishing in. The next day, Patricia Geyer, who said she’d largely let her husband deal with the bankruptcy case, left home to attend the court hearing about an hour after her husband. He never showed up.She told the court she had no idea about her husband’s wild story. She said they hadn’t been in Florida recently, she hadn’t had bypass surgery, and her husband didn’t have cancer. The first time she’d heard of her husband’s supposed death was two days earlier, when Lamie called her to say he’d heard about Geyer’s passing.“A few days ago, [Lamie] called me at work,” she said under cross-examination in court. “I got a message to call him. So I immediately called him and then he told me all this stuff about Russell being dead and all that. It just floored me, so I had no clue.”“Where’s Mr. Geyer now?” a judge asked her.“I couldn’t tell you, because he left the house this morning an hour, hour before me. And he was supposed to come down here and be here at 10:30, and then when I ended up here, he wasn't here. So I don’t know.” After that day in court, she only ever received text messages from Geyer saying he was in a hospital in West Virginia following a suicide attempt. Geyer was tracked down two weeks later and charged with criminal offenses. He underwent a psychiatric evaluation as part of the criminal case but was found to be competent to stand trial.“Despite its complexity and shameless use of deceit, including against his own wife, Mr. Geyer’s scheme failed to account for the FBI’s and the US Attorney’s office’s commitment to protect both fraud victims and our judicial system,” FBI Special Agent David W. Archey said.Read more at The Daily Beast.Got a tip? Send it to The Daily Beast hereGet our top stories in your inbox every day. Sign up now!Daily Beast Membership: Beast Inside goes deeper on the stories that matter to you. Learn more.





ma

The 'mind-blowing' story of the ex-Green Beret who tried to oust Venezuela's Maduro

Jordan Goudreau once pushed a plan to protect U.S. schools. Then he moved on to a more daring pursuit, which also didn't end well.





ma

3 nurses strangled in Mexico; border mayor gets coronavirus

Three sisters who worked in Mexico's government hospital system were found murdered by strangling, authorities in the northern border state of Coahuila announced Friday, stirring new alarm in a country where attacks on health care workers have occurred across the nation amid the coronavirus outbreak. Two of the sisters were nurses for the Mexican Social Security Institute and the third was a hospital administrator, but there was no immediate evidence the attack was related to their work. The National Union of Social Security Employees called the killings “outrageous and incomprehensible.”





ma

Latvia to ease coronavirus restrictions for public gatherings from May 12




ma

Katie Miller, Pence spokeswoman, tests positive for coronavirus

The diagnosis brings the threat of infection into the president's inner circle.





ma

Off-duty officer body slams Walmart shopper irate over face mask rule

The officer used a “takedown measure” to gain control of the woman because of “other threat factors in the store,” a police official said.





ma

Trump calls Ahmaud Arbery killing 'very disturbing' but says he trusts Georgia justice

President Trump said he had watched the video of Ahmaud Arbery being shot and found it “heartbreaking,” but he has confidence in the Georgia legal system.





ma

Coronavirus: Johnson reveals 'contingency plans' made during treatment

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




ma

Matt Hancock asks Julian Lewis about lockdown haircut

There was laughter in the Commons as minister asks MP about his "extraordinary" haircut.




ma

Coronavirus: MPs urge churches to allow small funerals

Their letter says services can be held with "proper measures in place", amid the Covid-19 outbreak.




ma

Coronavirus: Mass testing earlier 'would have been beneficial'

The UK's chief scientist tells MPs mass testing is "part of the system that you need to get right".




ma

Rory Stewart quits Mayor of London race

The former cabinet minister says he cannot ask campaign volunteers to work for another year.




ma

Coronavirus: Theresa May criticises world pandemic response

Countries have "gone their own way" rather than working together, the ex-prime minister says.




ma

Coronavirus: UK warned to avoid climate change crisis

UK government advisors say post-pandemic recovery funds should go to firms reducing carbon emissions.




ma

Climate change: Could the coronavirus crisis spur a green recovery?

Some governments want to channel their economic recovery plans into low-carbon industries.




ma

Coronavirus: How India's lockdown sparked a debate over maids

The government says domestic helpers can now resume work, but why are some Indians worried?




ma

Atletico Ottawa - how the Canadian club conceived in Spain is preparing to make its debut

Fan clubs, players from all over the world and a former Spain international in charge, Atletico Madrid's Canadian venture is currently on pause.




ma

'B' teams or partner clubs back on the agenda? Clubs may have to 'share resources' to survive

The controversial concept of B teams may be back on the agenda as football tries to navigate a way through Covid-19, Brighton technical director Dan Ashworth says.




ma

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

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




ma

Africa's week in pictures: 1 - 7 May 2020

A selection of the week's best photos from across the continent and beyond.




ma

Week in pictures: 2-8 May 2020

A selection of news photographs taken around the world this week.




ma

Coronavirus: Tesla ordered to keep main US plant closed

It reportedly planned to re-open on Friday, but authorities say this could lead to more virus cases.




ma

Magician Roy Horn dies after catching coronavirus

He and his stage partner Siegfried Fischbacher were one of the longest-running acts in Las Vegas.




ma

Coronavirus: Russia marks WW2 Victory Day with subdued celebrations

Footage of last year's Red Square military parade play on TV as the pandemic mutes celebrations.




ma

Love Bug's creator tracked down to repair shop in Manila

Two decades after the world's first major computer virus, an author finds the perpetrator in Manila.




ma

Couples get married in virtual wedding ceremonies

Video calling technology is helping people share their special day with others during lockdown.




ma

Robot offers help to human co-workers and other tech stories

BBC Click's Jen Copestake looks at some of the best of the week's technology stories.




ma

Coronavirus: Scam sites selling masks and fake cures taken down

More than 160,000 suspicious emails have been reported to a new scam-busting service in two weeks.




ma

Coronavirus: Google ends plans for smart city in Toronto

Sister firm Sidewalk Labs cites Covid-19 as the reason for stepping back from its ambitious plan.




ma

‘Justice not charity’ - the blind marchers who made history

Remembering the maverick blind campaigners who walked to London a century ago to demand equality.




ma

Coronavirus: ‘The nursery I run may not survive’

Thousands of nurseries and childminders may shut permanently due to the pandemic, research suggests.




ma

Coronavirus and climate change a ‘double crisis’

Many activists have had to stop their usual work due to the pandemic. Here's how they're responding.




ma

Worst song possible plays as Trump tours mask plant

As the president touts plans to reopen the economy, Live And Let Die blares over a loudspeaker.




ma

Mother of killed Georgia man seeks justice

Wanda Cooper says her son, Ahmaud Arbery, was "hunted down like an animal and killed".




ma

Coronavirus: Russian hospital staff 'working without masks'

As coronavirus spreads in the provinces, more and more health workers are getting sick - and dying.




ma

Norfolk Island morepork owls: Major breakthrough for rare species

Two fledglings may have safeguarded the future of the Norfolk Island morepork owl.




ma

Ahmaud Arbery: Joggers out in solidarity with the killed 25-year-old

People have been dedicating their workouts to Ahmaud Arbery who was shot and killed while out jogging.




ma

My glamorous life: are you ready to math?

For the past two years, I’ve been publishing a daily work-and-life diary on Basecamp, sharing it with a few friends. This private writing work supplanted the daily public writing I used to do here. In an experiment, I’m publishing yesterday’s diary entry here today: YESTERDAY, Ava and a few of her schoolmates participated in a […]

The post My glamorous life: are you ready to math? appeared first on Zeldman on Web & Interaction Design.





ma

React v16.9.0 and the Roadmap Update

Today we are releasing React 16.9. It contains several new features, bugfixes, and new deprecation warnings to help prepare for a future major release.

New Deprecations

Renaming Unsafe Lifecycle Methods

Over a year ago, we announced that unsafe lifecycle methods are getting renamed:

  • componentWillMountUNSAFE_componentWillMount
  • componentWillReceivePropsUNSAFE_componentWillReceiveProps
  • componentWillUpdateUNSAFE_componentWillUpdate

React 16.9 does not contain breaking changes, and the old names continue to work in this release. But you will now see a warning when using any of the old names:

As the warning suggests, there are usually better approaches for each of the unsafe methods. However, maybe you don’t have the time to migrate or test these components. In that case, we recommend running a “codemod” script that renames them automatically:

cd your_project
npx react-codemod rename-unsafe-lifecycles

(Note that it says npx, not npm. npx is a utility that comes with Node 6+ by default.)

Running this codemod will replace the old names like componentWillMount with the new names like UNSAFE_componentWillMount:

The new names like UNSAFE_componentWillMount will keep working in both React 16.9 and in React 17.x. However, the new UNSAFE_ prefix will help components with problematic patterns stand out during the code review and debugging sessions. (If you’d like, you can further discourage their use inside your app with the opt-in Strict Mode.)

Note

Learn more about our versioning policy and commitment to stability.

Deprecating javascript: URLs

URLs starting with javascript: are a dangerous attack surface because it’s easy to accidentally include unsanitized output in a tag like <a href> and create a security hole:

const userProfile = {
  website: "javascript: alert('you got hacked')",
};
// This will now warn:
<a href={userProfile.website}>Profile</a>

In React 16.9, this pattern continues to work, but it will log a warning. If you use javascript: URLs for logic, try to use React event handlers instead. (As a last resort, you can circumvent the protection with dangerouslySetInnerHTML, but it is highly discouraged and often leads to security holes.)

In a future major release, React will throw an error if it encounters a javascript: URL.

Deprecating “Factory” Components

Before compiling JavaScript classes with Babel became popular, React had support for a “factory” component that returns an object with a render method:

function FactoryComponent() {
  return { render() { return <div />; } }
}

This pattern is confusing because it looks too much like a function component — but it isn’t one. (A function component would just return the <div /> in the above example.)

This pattern was almost never used in the wild, and supporting it causes React to be slightly larger and slower than necessary. So we are deprecating this pattern in 16.9 and logging a warning if it’s encountered. If you rely on it, adding FactoryComponent.prototype = React.Component.prototype can serve as a workaround. Alternatively, you can convert it to either a class or a function component.

We don’t expect most codebases to be affected by this.

New Features

Async act() for Testing

React 16.8 introduced a new testing utility called act() to help you write tests that better match the browser behavior. For example, multiple state updates inside a single act() get batched. This matches how React already works when handling real browser events, and helps prepare your components for the future in which React will batch updates more often.

However, in 16.8 act() only supported synchronous functions. Sometimes, you might have seen a warning like this in a test but could not easily fix it:

An update to SomeComponent inside a test was not wrapped in act(...).

In React 16.9, act() also accepts asynchronous functions, and you can await its call:

await act(async () => {
  // ...
});

This solves the remaining cases where you couldn’t use act() before, such as when the state update was inside an asynchronous function. As a result, you should be able to fix all the remaining act() warnings in your tests now.

We’ve heard there wasn’t enough information about how to write tests with act(). The new Testing Recipes guide describes common scenarios, and how act() can help you write good tests. These examples use vanilla DOM APIs, but you can also use React Testing Library to reduce the boilerplate code. Many of its methods already use act() internally.

Please let us know on the issue tracker if you bump into any other scenarios where act() doesn’t work well for you, and we’ll try to help.

Performance Measurements with <React.Profiler>

In React 16.5, we introduced a new React Profiler for DevTools that helps find performance bottlenecks in your application. In React 16.9, we are also adding a programmatic way to gather measurements called <React.Profiler>. We expect that most smaller apps won’t use it, but it can be handy to track performance regressions over time in larger apps.

The <Profiler> measures how often a React application renders and what the “cost” of rendering is. Its purpose is to help identify parts of an application that are slow and may benefit from optimizations such as memoization.

A <Profiler> can be added anywhere in a React tree to measure the cost of rendering that part of the tree. It requires two props: an id (string) and an onRender callback (function) which React calls any time a component within the tree “commits” an update.

render(
  <Profiler id="application" onRender={onRenderCallback}>    <App>
      <Navigation {...props} />
      <Main {...props} />
    </App>
  </Profiler>);

To learn more about the Profiler and the parameters passed to the onRender callback, check out the Profiler docs.

Note:

Profiling adds some additional overhead, so it is disabled in the production build.

To opt into production profiling, React provides a special production build with profiling enabled. Read more about how to use this build at fb.me/react-profiling.

Notable Bugfixes

This release contains a few other notable improvements:

  • A crash when calling findDOMNode() inside a <Suspense> tree has been fixed.
  • A memory leak caused by retaining deleted subtrees has been fixed too.
  • An infinite loop caused by setState in useEffect now logs an error. (This is similar to the error you see when you call setState in componentDidUpdate in a class.)

We’re thankful to all the contributors who helped surface and fix these and other issues. You can find the full changelog below.

An Update to the Roadmap

In November 2018, we have posted this roadmap for the 16.x releases:

  • A minor 16.x release with React Hooks (past estimate: Q1 2019)
  • A minor 16.x release with Concurrent Mode (past estimate: Q2 2019)
  • A minor 16.x release with Suspense for Data Fetching (past estimate: mid 2019)

These estimates were too optimistic, and we’ve needed to adjust them.

tldr: We shipped Hooks on time, but we’re regrouping Concurrent Mode and Suspense for Data Fetching into a single release that we intend to release later this year.

In February, we shipped a stable 16.8 release including React Hooks, with React Native support coming a month later. However, we underestimated the follow-up work for this release, including the lint rules, developer tools, examples, and more documentation. This shifted the timeline by a few months.

Now that React Hooks are rolled out, the work on Concurrent Mode and Suspense for Data Fetching is in full swing. The new Facebook website that’s currently in active development is built on top of these features. Testing them with real code helped discover and address many issues before they can affect the open source users. Some of these fixes involved an internal redesign of these features, which has also caused the timeline to slip.

With this new understanding, here’s what we plan to do next.

One Release Instead of Two

Concurrent Mode and Suspense power the new Facebook website that’s in active development, so we are confident that they’re close to a stable state technically. We also now better understand the concrete steps before they are ready for open source adoption.

Originally we thought we would split Concurrent Mode and Suspense for Data Fetching into two releases. We’ve found that this sequencing is confusing to explain because these features are more related than we thought at first. So we plan to release support for both Concurrent Mode and Suspense for Data Fetching in a single combined release instead.

We don’t want to overpromise the release date again. Given that we rely on both of them in production code, we expect to provide a 16.x release with opt-in support for them this year.

An Update on Data Fetching

While React is not opinionated about how you fetch data, the first release of Suspense for Data Fetching will likely focus on integrating with opinionated data fetching libraries. For example, at Facebook we are using upcoming Relay APIs that integrate with Suspense. We will document how other opinionated libraries like Apollo can support a similar integration.

In the first release, we don’t intend to focus on the ad-hoc “fire an HTTP request” solution we used in earlier demos (also known as “React Cache”). However, we expect that both we and the React community will be exploring that space in the months after the initial release.

An Update on Server Rendering

We have started the work on the new Suspense-capable server renderer, but we don’t expect it to be ready for the initial release of Concurrent Mode. This release will, however, provide a temporary solution that lets the existing server renderer emit HTML for Suspense fallbacks immediately, and then render their real content on the client. This is the solution we are currently using at Facebook ourselves until the streaming renderer is ready.

Why Is It Taking So Long?

We’ve shipped the individual pieces leading up to Concurrent Mode as they became stable, including new context API, lazy loading with Suspense, and Hooks. We are also eager to release the other missing parts, but trying them at scale is an important part of the process. The honest answer is that it just took more work than we expected when we started. As always, we appreciate your questions and feedback on Twitter and in our issue tracker.

Installation

React

React v16.9.0 is available on the npm registry.

To install React 16 with Yarn, run:

yarn add react@^16.9.0 react-dom@^16.9.0

To install React 16 with npm, run:

npm install --save react@^16.9.0 react-dom@^16.9.0

We also provide UMD builds of React via a CDN:

<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>

Refer to the documentation for detailed installation instructions.

Changelog

React

  • Add <React.Profiler> API for gathering performance measurements programmatically. (@bvaughn in #15172)
  • Remove unstable_ConcurrentMode in favor of unstable_createRoot. (@acdlite in #15532)

React DOM

React DOM Server

  • Fix incorrect output for camelCase custom CSS property names. (@bedakb in #16167)

React Test Utilities and Test Renderer




ma

An intro to making Postgres high availability on Kubernetes

#351 — April 15, 2020

Read on the Web

Postgres Weekly

A Detailed Look at pg_show_plans — A few issues ago we linked to a basic introduction to pg_show_plans – this goes a little further. pg_show_plans lets you look at the execution plans of slow queries in real time as they’re being executed which can help you when troubleshooting.

Kaarel Moppel

Intersecting GPS Tracks to Identify Infected Individuals — I’m not a huge fan of COVID-19 related content, but this is a pretty interesting technique with numerous use cases. Essentially it uses PostGIS to identify overlapping paths.

Florian Nadler

Online Training: Learn PostgreSQL from Home — The remote PostgreSQL Database Administration training course is available at a discounted rate & will be conducted in two different timezones. The course covers day-to-day DBA operations, monitoring, server configurations, and more.

2ndQuadrant PostgreSQL Training sponsor

PostgreSQL's 'Related Projects' — Thanks to Andreas Scherbaum for pointing out a new page on the Postgres site dedicated to projects related to Postgres like the code that runs the Postgres web site, mailing list, build farm, package management system, etc.

PostgreSQL Global Development Group

Authentication Configuration in Postgres (and CockroachDB) — In Postgres, client authentication can be controlled via a ‘HBA’ (host-based authentication) file. It’s not something we see covered very often, so you might find this interesting, particularly as it compares things against CockroachDB.

Raphael ‘kena’ Poss

▶  Easy And Correct High Availability Postgres with Kubernetes — A 50 minute talk from PostgresOpen 2019 that goes all the way ‘from containers up’ until actually doing stuff with Postgres.

Steven Pousty

How To Set Up an Express API Backend Project With Postgres — A pretty extensive walkthrough of creating an HTTP API using Express with Node.js and Postgres on the backend, then deploying it all on Heroku.

Chidi Orji

A Beginners Guide to Basic Indexing in Postgres

James Bannister

eBook: The Most Important Events to Monitor in Your Postgres Logs — In this eBook, we are looking at the Top 6 Postgres log events for monitoring query performance and preventing downtime.

pganalyze sponsor

Documenting the Citus Extension to Postgres: An Interview with Joe Nelson — Joe, a.k.a. begriffs, talks about why he works on documentation, why the multi-tenant and real-time analytics tutorials matter, the INSERT..SELECT with repartitioning feature, and what development platform Citus uses for docs.

Citus Data (Microsoft)

Procedural vs Query Approaches for Finding Packages — Explorations of a query that can be used to display which packages are available for a given FreeBSD port. Get your head around the data model and the ideas here apply to all sorts of situations.

Dan Langille

???? Upcoming Events

All in-person events we had listed are cancelled or postponed due to the COVID outbreak, so we're now linking to webinars, livestreams, and similar online events.

If you have any, just hit reply and if it's Postgres related (and either free or not too expensive) we'll include it in a future issue. Just one this week:

???? – requires e-mail address or registration
???? – costs money to participate

???? Seen on Twitter

Saw this tweet and thought it was a pretty neat reminder of the sorts of things we can do with Postgres. Justin kindly let us include it:

Click through to the original tweet if you want to see the code better. Neat use for a generated column!




ma

Workloads, acceleration, and making Postgres better

#353 — April 29, 2020

Read on the Web

Postgres Weekly

7 Things That Could Be Improved in Postgres — As 1990s dance pop group D:Ream sang in 1994, Things Can Only Get Better.. including Postgres ???? Luckily these are all ‘nice to have’s but I dare say we’ll see some of them (such as automatic tuning and auto-vacuuming improvements) appear over time.

Kaarel Moppel

How The Citus Distributed Query Executor Adapts to a Postgres Workload — Citus is the popular extension for horizontally scaling Postgres and its query executor has seen some huge updates lately.

Citus Data (Microsoft)

eBook: The Most Important Events to Monitor in Your Postgres Logs — In this pganalyze eBook, we are looking at the Top 6 Postgres log events for monitoring query performance and preventing downtime.

pganalyze sponsor

Swarm64 DA 4.0: A Database Acceleration Extension for Postgres — Swarm64 started life as a FPGA-driven way to accelerate Postgres performance, but can now work without FPGAs too. This is not a free product but if you want to give it a run, there’s a trial or it can be spun up from the AWS Marketplace.

Yana Krasteva

Postgres Performance Goalposts — An interesting heuristic from Bruce here on what to do if you expect your connections, queries, or write queries to be above/below certain levels.

Bruce Momjian

A Tale of Password Authentication Methods in Postgres“Let’s say you want to implement a password authentication method in a client/server protocol..” Here’s the story of how Postgres came up with its approaches.

Peter Eisentraut

How to Set application_name When Using psql — As Craig says: “Setting your application name in Postgres is SO USEFUL. It will help a lot for debugging when you’ve got multiple different apps/services connecting to the same database.”

Denish Patel

How to Upgrade Postgres from v11 to v12 on Ubuntu 20.04 — Now that Ubuntu 20.04 is out, this might be on your mind!

Paolo Melchiorre

Working with Amazon Aurora PostgreSQL: What Happened to the Stats? — Apparently there’s a bug with numerous versions of Aurora PostgreSQL that causes certain stats to be lost on restart.

Michael Vitale

Postgres Vision 2020 - Free Online Conference (June 23-24) — Learn how today’s IT leaders are using Postgres. Join from anywhere in the world and listen from 30+ Postgres experts.

EnterpriseDB sponsor

A Deep Dive into PostGIS Nearest Neighbor Search — Take a deep dive into the Postgres and PostGIS internals to find out how K-nearest neighbor accelerates local search.

Martin Davis

My Favorite Postgres Extensions: Part One — A basic high level look at pg_partman and postgres_fdw.

Nawaz Ahmed

Kanel: Generate TypeScript Types from Postgres

Kristian Dupont

Postgres.app: The Easiest Way to Get Started with Postgres on the Mac — I’ve used this for years, it’s super popular, but if there’s just a handful of developers out there who’d benefit from it and don’t know about it, this reminder will be worth it :-) It continues to get very frequent updates.

Jakob Egger, Chris Pastl, and Mattt Thompson

???? Upcoming Events

All in-person events we had listed are cancelled or postponed due to the COVID outbreak, so we're now linking to webinars, livestreams, and similar online events.

If you have any, just hit reply and if it's Postgres related (and either free or not too expensive) we'll include it in a future issue. Just one this week:

  • ???? Postgres Vision 2020 on June 23-24. A full attempt at an online Postgres conference across multiple days with multiple tracks.

???? – requires e-mail address or registration
???? – costs money to participate




ma

Stimulus Reflex, and sending thanks to Matz

#498 — April 23, 2020

Read on the Web

Ruby Weekly

Credit: Divina Epiphania / Shutterstock.com

Mining for Malicious Ruby Gems: 700+ Gems Affected — Breathe easy as this was all resolved a month ago (and was too obscure to pay off for the hackers anyway) but a security research team recently found over 700 malicious Ruby gems that were subtle typos/adjustments of more popular gems (e.g. atlas-client vs atlas_client – could you tell which one is real?)

Tomislav Maljic

You Can Now Sponsor Matz on GitHub — I appreciate these are challenging times, but if you’ve ever wanted to give a big thank you to Matz, the creator of Ruby, here’s one way to do it. We’re sponsoring Matz now as without him, this newsletter wouldn’t exist! ???? Alternatively, if you have little to spare, maybe send him a thanks on Twitter?

GitHub Sponsors

Ruby Performance Tips — Here’s a collection of practical tips for improving Ruby performance for better user experiences, brought to you by Raygun. Read the tips here.

Raygun sponsor

Full Text Search in Milliseconds with Rails and Postgres — If you’ve never played with full text search with Postgres and Rails, this is a fine place to start. It covers LIKE/ILIKE, trigrams, and ‘proper’ full text searching. We also get to see how Leigh took a query from taking 130ms down to 7ms.

Leigh Halliday

▶  Introduction to Stimulus Reflex — Stimiulus Reflex makes SPA-type interactions very simple by using ActionCable to render pages and then diffing them on the client.

GoRails

Rails Performance: When is Caching the Right Choice? — Before you say “always”, understand that caching is not free and, if done incorrectly, can even make things worse.

Jonathan Miles

???? Jobs

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

Ruby Backend Developer (Austria) — We’re seeking mid-level and senior devs to join us and build top-class backend infrastructure for our adidas apps, used by millions. Our stack includes: jRuby, Sinatra, Sidekiq, MySQL, & MongoDB.

Runtastic

ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here.

???? Articles & Tutorials

How to Customize Webpack in Rails Apps — How to go about configuring webpack when tweaking webpacker.yml just isn’t enough.

Ross Kaffenberger

RSpec Given/When/Then with Symbols — An interesting, alternative way to structure a BDD feature in RSpec. I think I prefer the underscores but YMMV.

Caius Durling

Looking Inside a Ruby Gem — Piotr decomposes a .gem file which turns out to just be a collection of gzipped and tarred files, only some of which are the code.

Piotr Murach

eBook: The Most Important Events to Monitor in Your Postgres Logs — In this eBook, you will learn about the Top 6 Postgres log events for monitoring query performance and preventing downtime.

pganalyze sponsor

Passing Rails Controller Params to SidekiqActionController::Parameters can give Sidekiq issues.

Prathamesh Sonpatki

Catchup Subscriptions with Rails Event Store

Miroslaw Praglowski

Logic-less Ruby Templates with Mustache

David Santangelo

▶  Discussing Ruby for Good with Sean Marcia — Sean talks about founding Ruby For Good (an event about philanthropic Ruby development) and some of the projects it has been responsible for creating.

Ruby Rogues podcast

???? Code and Tools

Impressionist 2.0: A Plugin to Log Impressions in Rails Apps — Impressionist tracks page views and impressions. v2.0 has just dropped but they’re also are looking for new maintainers, so contact them if you want to get involved.

Charlotte Ruby Group

acli 0.3: A Command Line Client for Action Cable — Interesting on two fronts.. first, because it’s an mruby app, and we don’t see many of those, and second, because it lets you play with Action Cable channels in any easier way.

Vladimir Dementyev

Undercover: A Tool to Stop You Shipping Untested Code — It’s like RuboCop but for code coverage rather than code style.

Jan Grodowski

How to Monitor Your Host Metrics Automatically

AppSignal sponsor

Bridgetown: A Modern Ruby (JAMstack) Web Framework — Bridgetown is a new Ruby-based static-site generator based on a fork of Jekyll. It supports plugins and Webpack, so you can use your front-end framework of choice.

Bridgetown

net-ssh 6.0: A Pure Ruby Implementation of the SSH2 Client Protocol — Yes, you can write programs that invoke and interact with processes on remote servers, via SSH2, all in Ruby.

Buck, Fazekas, et al.




ma

Coronavirus: Here's how you can stop bad information from going viral

Experts are calling on the public to practise ‘information hygiene’ to help stop the spread of falsehoods online.