ap

Duology Wallpaper and DFCO Coming to Switch

This week, you can download desktops featuring the new cover art and stills from the trailer, then get a discount on the Steam edition of the Dresden Files Cooperative Card Game in anticipation of its launch on the Switch! Ready? LET’S DO THIS THING. Living Social We’re expanding out social media presence! You should already [...]












ap

Ripples in Earth’s atmosphere make distant galaxies appear to flash

Faraway galaxies have been spotted unexpectedly flashing up to 100 times their usual brightness, and it seems to be caused by eddies in Earth’s atmosphere




ap

Reports of an insect apocalypse are overblown but still concerning

While an alarming 9 per cent of insects on land are being lost each decade, the state of the world’s insects is much more nuanced than warnings of an insect apocalypse




ap

Can virtual therapy help us cope with the coronavirus lockdown?

Many people are turning to virtual therapy and mental health apps to cope with the stress of the coronavirus pandemic, but they may not be as helpful as talking face to face




ap

Microwaved bamboo could be used to build super-strong skyscrapers

Bamboo is a renewable material that when microwaved becomes stronger by weight than steel or concrete – which could make it ideal for constructing buildings, cars and planes




ap

It’s impossible to predict if crucial Antarctic glacier will collapse

The Pine Island glacier has three tipping points that could lead to the collapse of the entire West Antarctic ice sheet, potentially raising sea levels by 3 metres over centuries




ap

Drinking coffee appears to cause epigenetic changes to your DNA

Coffee has been linked to changes on our DNA that affect how active certain genes are. The finding may help explain some of coffee's touted health benefits




ap

We still don't know how effective the NHS contact-tracing app will be

The UK government will begin trials of its coronavirus contact-tracing app this week, but what impact it will have on slowing the spread of covid-19 is unclear




ap

Covid-19 shows why an infodemic of bad science must never happen again

Once the coronavirus pandemic is over, we must work out how to stop the spread of poor information that has helped make a bad situation that much worse




ap

A Japanese nuclear power plant created a habitat for tropical fish

A small increase in water temperature near a Japanese nuclear power plant allowed tropical fish to colonise the area, suggesting global warming will drastically alter some marine ecosystems




ap

I have a doctor’s appointment today?

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



  • Miscellaneous and Meta

ap

If the virus were the size of dinosaurs, maybe people would appreciate the danger

This story is a bit on the nose. Hello, Peter Ludlow here, CEO of InGen, the company behind the wildly successful dinosaur-themed amusement park, Jurassic Park. As you’re all aware, after an unprecedented storm hit the park, we lost power and the velociraptors escaped their enclosure and killed hundreds of park visitors, prompting a two-month […]




ap

Hardly Appropriate




ap

Appointment




ap

Friday Polynews Roundup — Polyfolks cope with coronavirus, LDRing across town, 'Trigonometry' and other TV, and a happy quad is spotlighted



  • Friday Polynews Roundup
  • polyamory on TV
  • TV






ap

Larry Kudlow on April jobs report: Trump assembled $9T rescue plan, we’ve done the best we can

U.S. loses record 20.5 million jobs in the month of April; White House National Economic Council Director Larry Kudlow weighs in on ‘America’s Newsroom.’





ap

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.





ap

‘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.





ap

Brazil government warns of economic collapse in 30 days

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





ap

No warning, no escape as deadly gas swept through an Indian village

When gas began leaking from a nearby chemical factory and drifting towards his house in southern India, there were no warnings and no alarms, welder Elamanchili Venkatesh said. Venkatesh, who staggered outside blindly, said he coughed up blood before losing consciousness.





ap

James Clapper Said He ‘Never Saw Direct Empirical Evidence’ of Trump-Russia Collusion in FBI Interview

Former director of national intelligence James Clapper in 2018 said that he hadn't seen evidence that the Trump presidential campaign colluded with Russia to win the 2016 general election.Clapper was responding to a query from then-representative Tom Rooney, a Florida Republican, during an interview before the House Intelligence Committee. The transcript of the interview was released on Thursday."I never saw any direct empirical evidence that the Trump campaign or someone in it was plotting [or] conspiring with the Russians to meddle with the election," Clapper said."That's not to say that there weren't concerns about the evidence we were seeing, anecdotal evidence…[redacted]," Clapper added. "But I do not recall any instance when I had direct evidence of the content of these meetings. It's just the frequency and prevalence of them was of concern."Rooney then asked Clapper, "At what time is collusion collusion, and at what time is it just people that may have an affiliation with the campaign meeting or talking with… the Russian ambassador or somebody that's of Russian origin, and when should that be taken as something that rises to the level of an Intelligence Community concern?""I really can't answer it other than the sort of visceral reaction to why all these meetings with the Russians," Clapper responded. Clapper admitted that it would be "legitimate" for incoming Trump administration officials to meet with representatives of Russia, "but I think there is a line…between that and violating the principle that in this country we traditionally have one President and one administration at a time."The interview was part of a set of 53 transcripts of interviews held by the House Intelligence Committee as part of the Russia investigation. Current committee chairman Adam Schiff had called for the release of the transcripts in 2018.However, after 43 transcripts had been reviewed and redacted by intelligence agencies as of June 2019, Schiff refused to relase the completed transcripts to the public. Current acting DNI head Richard Grenell informed Schiff on Wednesday that all the transcripts were ready for publication.





ap

Coronavirus: Contact tracing app to be trialled on Isle of Wight

The experiment is part of the government's track and trace strategy aimed at limiting a second wave.




ap

Coronavirus: UK banks get 100,000 loan applications on first day

Banks see stampede for bounce-back loans within hours of the new government scheme going live.




ap

Coronavirus: Draft post-lockdown workplace rules contain 'huge gaps' - TUC

The leader of the TUC says she cannot recommend the government's draft advice "in its current form".




ap

Anti-abortion campaigner loses Stella Creasy poster ban appeal

A judge dismisses Christian Hacking's bid to overturn a ban on posters put up around Waltham Forest.




ap

Coronavirus: Photographers' children's lives in lockdown

Photographers who work for Unicef have taken candid shots of their children's lives during lockdown.




ap

Coronavirus: 'Phone apps helped me spend time with my dying mum'

Andrew's mother was dying in hospital under lockdown, so he used technology to spend time with her.




ap

Coronavirus contact-tracing: World split between two types of app

The UK is testing its own design but a Google-Apple initiative is winning over many other nations.




ap

Coronavirus: NHS reveals source code behind contact-tracing app

More than 40,000 people have downloaded the contact tracing app so far, ahead of a wider release.




ap

Coronavirus schools return: Can you really keep children 2m apart?

What's it like in a school that has re-opened? Denmark and Germany show how it might look.




ap

Coronavirus: Russia swaps Victory Day parade for air show

The Red Square parade was cancelled because of the pandemic, but in neighbouring Belarus the parade went ahead as planned.





ap

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




ap

It's time to upgrade those Ruby 2.4 apps

#497 — April 16, 2020

Read on the Web

Ruby Weekly

Bye Bye Ruby 2.4, Support Has Ended — From the end of April 2019 till now, Ruby 2.4 has been in its ‘security maintenance’ phase but now you won’t even get that, Ruby 2.4.10 should be the final 2.4 release. 2.5 will follow in 2.4’s footsteps next year, so upgrading to 2.6 or 2.7 should now be a priority for those older apps.

Ruby Core Team

Testing Ruby Decorators with super_method — Have you ever wondered how you can properly test the behavior of a method overridden by Module#prepend? Enter super_method which returns a Method object of which superclass method would be called when super is used or nil if none exists.

Simone Bravo

You Hacked the Gibson? Yeah, They Built Their Own Login — Don't let Crash Override pwn your app. FusionAuth adds secure login, registration and user management to your app in minutes not months. Download our community edition for free.

FusionAuth sponsor

Heya: A Sequence Mailer for Rails — “Think of it like ActionMailer, but for timed email sequences.” Note: It’s open source but not free for commercial use beyond a certain point.

Honeybadger Industries LLC

A Final Report on Ruby Concurrency Developments — A report on work funded by a 2019 Ruby Association Grant that puts forth a proposal of using non-blocking fibers to improve Ruby’s concurrency story.

Samuel Williams

Mocking in Ruby with Minitest — Minitest has basic mocking functionality baked in, but be judicious in your use of it.

Heidar Bernhardsson

???? Jobs

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

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

Vettery

▶️ Get ready for your next role: Pluralsight is free for the entire month of April. Stay Home. Skill Up. #FreeApril — SPONSORED

???? Articles & Tutorials

Predicting the Future With Linear Regression in Ruby — Linear regression is a mathematical approach to modelling a relationship between multiple variables and is demonstrated here by exploring whether the tempo of a song predicts its popularity on Spotify.

Julie Kent

Feature Flags: A Simple Way to 'De-Stress' Production Releases — Feature flags bridge a gap between the abstract concept of continuous delivery and tactical release of features.

Matt Swanson

A Guide to Deprecation Warnings in Rails — If you’ve upgraded Rails and you start seeing warnings screaming at you, you can either get Googling or.. read this ????

Luciano Becerra

What's the Difference Between Monitoring Webhooks and Background Jobs

AppSignal sponsor

Understanding webpacker.yml — Have you ever really gone through the Webpack config?

Ross Kaffenberger

Using Optimizer Hints in Rails — Rails 6 removes the need to write raw SQL to use optimizer hints, so that’s cool.

Prateek Choudhary

Dissecting Rails Migrations — You should pick up something new about migrations by reading this article as it covers all of the essentials and a little more.

Prathamesh Sonpatki

The Basics of Custom Exception Handling — Never hurts to revise the basics of effective exceptions.

Mark Michon

How to Improve Code Readability with Closures

Andrey Koleshko

???? Code and Tools

ruby-prolog: A Pure Ruby Prolog-like DSL for Logical Programming — Solve complex logic problems on the fly using a dynamic, Prolog-like DSL inline with your normal code.

Preston Lee

Anyway Config: Keep Your Ruby Configuration Sensible — Get your Ruby project out of ‘ENV Hell’ with anyway_config, a framework for managing configuration.

Vladimir Dementyev

The End of Heroku Alerts — Rails Autoscale keeps your app healthy. Simple and effective autoscaling for Web, Sidekiq, Delayed Job, and Que.

Rails Autoscale sponsor

Tomo 1.0: A Friendly CLI for Deploying Rails Apps — There’s a short tutorial for deploying Rails, and the documentation is thorough.

Matt Brictson

ActiveLdap 6.0: An Object Oriented Interface to LDAP — A very long standing project (16 years!) that has just had an update. LDAP stands for Lightweight Directory Access Protocol and while I don’t hear about it much anymore, it has plenty of established use cases.

Sutou Kouhei

Elasticsearch Integrations for ActiveModel/Record and Rails

Elastic

RubyMine 2020.1 Released

Natalie Kudanova




ap

The rapper's track that sparked a wave of killings

Tensions have long existed between gangs in Tottenham and Wood Green - for 10 weeks in 2018 they boiled over.




ap

Electrosensitivity: 'I didn't believe people had it, then it happened to me'

Velma, Emma and Dean believe mobile phone signals, wi-fi and other modern technology makes them ill.




ap

Coronavirus: How a plus-size fashion retailer is adapting

Ojoma Idegwu, founder of plus-size fashion label Dear Curves, explains how she is adapting to coronavirus.