lit

Paul's utilization of preformed traditions in 1 Timothy : an evaluation of the apostle's literary, rhetorical, and theological tactics / Mark M. Yarbrough

Yarbrough, Mark M., author




lit

God and difference : the trinity, sexuality, and the transformation of finitude / Linn Marie Tonstad

Tonstad, Linn Marie, 1978- author




lit

The Bible and disability : a commentary / Sarah J. Melcher, Mikeal C. Parsons, Amos Yong, editors




lit

Rereading Romans from the perspective of Paul's gospel : a literary and theological commentary / Yung Suk Kim

Kim, Yung Suk, author




lit

What does the Bible say? : a critical conversation with popular culture in a biblically illiterate world / Mary Ann Beavis and HyeRan Kim-Cragg ; foreword by Catherine Faith MacLean

Beavis, Mary Ann, author




lit

How the Gospels became history : Jesus and Mediterranean myths / M. David Litwa

Litwa, M. David, author




lit

Christobiography : memory, history, and the reliability of the Gospels / Craig S. Keener

Keener, Craig S., 1960- author




lit

Political grace : the revolutionary theology of John Calvin / Roland Boer

Boer, Roland, 1961-




lit

Neither complementarian nor egalitarian : a kingdom corrective to the evangelical gender debate / Michelle Lee-Barnewall ; foreword by Craig L. Blomberg ; afterword by Lynn H. Cohick

Lee-Barnewall, Michelle, 1966- author




lit

The making of Christian morality : reading Paul in ancient and modern contexts / David G. Horrell

Horrell, David G., author




lit

Jesus' literacy : scribal culture and the teacher from Galilee / Chris Keith

Keith, Chris, author




lit

Politics and rhetoric in the Corinthian Epistles / by L.L. Welborn

Welborn, L. L., 1953-




lit

Revelations of ideology : apocalyptic class politics in early Roman Palestine / by G. Anthony Keddie

Keddie, G. Anthony, author




lit

Metaphor, morality, and the Spirit in Romans 8:1-17 / William E.W. Robinson

Robinson, William E. W. (William Edmond Whiddon), author




lit

A place at His table : a Biblical exploration of faith, sexuality, and the kingdom of God / Joel Hollier

Hollier, Joel, author




lit

Jesus and the politics of mammon / Hollis Phelps

Phelps, Hollis, author




lit

The New Testament in its world : an introduction to the history, literature, and theology of the first Christians / N.T. Wright, Michael F. Bird

Wright, N. T. (Nicholas Thomas), author




lit

Religion and politics under capitalism : a humanistic approach to the terminology / Stefan Arvidsson

Arvidsson, Stefan, 1968- author




lit

Contemporary Christianity and LGBT sexualities / edited by Stephen Hunt




lit

Essential essays for the study of the military in first-century Palestine : soldiers and the New Testament context / edited by Christopher B. Zeichman




lit

Sacraments, ceremonies and the Stuart divines : sacramental theology and liturgy in England and Scotland 1603-1662 / Bryan D. Spinks

Spinks, Bryan D., author




lit

Secondary Metabolites of Medicinal Plants: Ethnopharmacological Properties, Biological Activity and Production Strategies, 4 Volume Set


 
Covers the structurally diverse secondary metabolites of medicinal plants, including their ethnopharmacological properties, biological activity, and production strategies

Secondary metabolites of plants are a treasure trove of novel compounds with potential pharmaceutical applications. Consequently, the nature of these metabolites as well as strategies for the targeted expression and/or purification is of high interest. Regarding their biological and

Read More...




lit

Alkaline water-splitting reactions over Pd/Co-MOF-derived carbon obtained via microwave-assisted synthesis

RSC Adv., 2020, 10,17359-17368
DOI: 10.1039/D0RA02307H, Paper
Open Access
  This article is licensed under a Creative Commons Attribution 3.0 Unported Licence.
Adewale K. Ipadeola, Kenneth I. Ozoemena
Palladium nanoparticles supported on MOF-derived carbon serve as an efficient bifunctional electrocatalyst for alkaline water-splitting reactions.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

Two-dimensional β-MoO3@C nanosheets as high-performance negative materials for supercapacitors with excellent cycling stability

RSC Adv., 2020, 10,17497-17505
DOI: 10.1039/D0RA01258K, Paper
Open Access
Xuexia Liu, Ying Wu, Huiwen Wang, Yinfeng Wang, Chunfang Huang, Limin Liu, Zhijun Wang
MoO3 has gained a great deal of attention as a promising electrode material in energy storage devices.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

Fabrication of a magnetic ternary ZnFe2O4/TiO2/RGO Z-scheme system with efficient photocatalytic activity and easy recyclability

RSC Adv., 2020, 10,17293-17301
DOI: 10.1039/D0RA01880E, Paper
Open Access
Yuwei Sun, Jiashuang Lei, Yizhu Wang, Qian Tang, Chunli Kang
A magnetic separable Z-scheme composite based on ZnFe2O4, TiO2 nanosheets and RGO exhibits efficient photocatalytic degradation of p-NP.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

Ferroelectric P(VDF-TrFE)/POSS nanocomposite films: compatibility, piezoelectricity, energy harvesting performance, and mechanical and atomic oxygen erosion

RSC Adv., 2020, 10,17377-17386
DOI: 10.1039/D0RA01769H, Paper
Open Access
Y. Z. Liu, H. Zhang, J. X. Yu, Z. Y. Huang, C. Wang, Y. Sun
Poly(vinylidene difluoride) (PVDF) and its copolymers as the polymers with the highest piezoelectric coefficient have been widely used as sensors and generators.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

A compatibility study on the glycosylation of 4,4'-dihydroxyazobenzene

RSC Adv., 2020, 10,17432-17437
DOI: 10.1039/D0RA02435J, Paper
Open Access
Jonathan Berry, Guillaume Despras, Thisbe K. Lindhorst
The glycosylation of 4,4'-dihydroxyazobenzene was investigated to identify suitable conditions providing access to valuable photoswitchable glycoconjugates.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

The influence of structural gradients in large pore organosilica materials on the capabilities for hosting cellular communities

RSC Adv., 2020, 10,17327-17335
DOI: 10.1039/D0RA00927J, Paper
Open Access
  This article is licensed under a Creative Commons Attribution 3.0 Unported Licence.
Hannah Bronner, Anna-Katharina Holzer, Alexander Finke, Marius Kunkel, Andreas Marx, Marcel Leist, Sebastian Polarz
Chemical and structural gradients in biofunctionalized organosilica–polymer nanocomposites control cell adhesion properties and open perspectives for artificial cellular community systems.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

Enhanced thermal stability, hydrophobicity, UV radiation resistance, and antibacterial properties of wool fabric treated with p-aminobenzenesulphonic acid

RSC Adv., 2020, 10,17515-17523
DOI: 10.1039/D0RA02267E, Paper
Open Access
Mohammad Mahbubul Hassan
The treatment with para-aminobenzenesulphonic acid produced a multifunctional wool fabric with enhanced hydrophobicity, thermal stability, UV resistance, and antibacterial properties.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

Correction: Influence of co-cultures of Streptococcus thermophilus and probiotic lactobacilli on quality and antioxidant capacity parameters of lactose-free fermented dairy beverages containing Syzygium cumini (L.) Skeels pulp

RSC Adv., 2020, 10,16905-16905
DOI: 10.1039/D0RA90046J, Correction
Open Access
  This article is licensed under a Creative Commons Attribution 3.0 Unported Licence.
Sabrina Laís Alves Garcia, Gabriel Monteiro da Silva, Juliana Maria Svendsen Medeiros, Anna Paula Rocha de Queiroga, Blenda Brito de Queiroz, Daniely Rayane Bezerra de Farias, Joyceana Oliveira Correia, Eliane Rolim Florentino, Flávia Carolina Alonso Buriti
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

A chitosan-based edible film with clove essential oil and nisin for improving the quality and shelf life of pork patties in cold storage

RSC Adv., 2020, 10,17777-17786
DOI: 10.1039/D0RA02986F, Paper
Open Access
Karthikeyan Venkatachalam, Somwang Lekjing
This study assessed chitosan (CS)-based edible films with clove essential oil (CO) and nisin (NI) singly or in combination, for improving quality and shelf life of pork patties stored in cold conditions.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

Lithium metal deposition/dissolution under uniaxial pressure with high-rigidity layered polyethylene separator

RSC Adv., 2020, 10,17805-17815
DOI: 10.1039/D0RA02788J, Paper
Open Access
  This article is licensed under a Creative Commons Attribution 3.0 Unported Licence.
Shogo Kanamori, Mitsuhiro Matsumoto, Sou Taminato, Daisuke Mori, Yasuo Takeda, Hoe Jin Hah, Takashi Takeuchi, Nobuyuki Imanishi
The use of a high rigidity separator and application of an appropriate amount of pressure are effective approaches to control lithium metal growth and improve its cycle performance.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

Nanoporous materials with predicted zeolite topologies

RSC Adv., 2020, 10,17760-17767
DOI: 10.1039/D0RA01888K, Paper
Open Access
  This article is licensed under a Creative Commons Attribution 3.0 Unported Licence.
Vladislav A. Blatov, Olga A. Blatova, Frits Daeyaert, Michael W. Deem
Topological exploration of crystal structures demonstrates the presence of known zeolites, inorganics, and MOFs in a database of predicted materials.
The content of this RSS Feed (c) The Royal Society of Chemistry




lit

Redux modules and code-splitting

Twitter Lite uses Redux for state management and relies on code-splitting. However, Redux’s default API is not designed for applications that are incrementally-loaded during a user session.

This post describes how I added support for incrementally loading the Redux modules in Twitter Lite. It’s relatively straight-forward and proven in production over several years.

Redux modules

Redux modules comprise of a reducer, actions, action creators, and selectors. Organizing redux code into self-contained modules makes it possible to create APIs that don’t involve directly referencing the internal state of a reducer – this makes refactoring and testing a lot easier. (More about the concept of redux modules.)

Here’s an example of a small “redux module”.

// data/notifications/index.js

const initialState = [];
let notificationId = 0;

const createActionName = name => `app/notifications/${name}`;

// reducer
export default function reducer(state = initialState, action = {}) {
  switch (action.type) {
    case ADD_NOTIFICATION:
      return [...state, { ...action.payload, id: notificationId += 1 }];
    case REMOVE_NOTIFICATION:
      return state.slice(1);
    default:
      return state;
  }
}

// selectors
export const selectAllNotifications = state => state.notifications;
export const selectNextNotification = state => state.notifications[0];

// actions
export const ADD_NOTIFICATION = createActionName(ADD_NOTIFICATION);
export const REMOVE_NOTIFICATION = createActionName(REMOVE_NOTIFICATION);

// action creators
export const addNotification = payload => ({ payload, type: ADD_NOTIFICATION });
export const removeNotification = () => ({ type: REMOVE_NOTIFICATION });

This module can be used to add and select notifications. Here’s an example of how it can be used to provide props to a React component.

// components/NotificationView/connect.js

import { connect } from 'react-redux';
import { createStructuredSelector } from 'reselect';
import { removeNotification, selectNextNotification } from '../../data/notifications';

const mapStateToProps = createStructuredSelector({
  nextNotification: selectNextNotification
});
const mapDispatchToProps = { removeNotification };

export default connect(mapStateToProps, mapDispatchToProps);
// components/NotificationView/index.js

import connect from './connect';
export class NotificationView extends React.Component { /*...*/ }
export default connect(NotificationView);

This allows you to import specific modules that are responsible for modifying and querying specific parts of the overall state. This can be very useful when relying on code-splitting.

However, problems with this approach are evident once it comes to adding the reducer to a Redux store.

// data/createStore.js

import { combineReducers, createStore } from 'redux';
Import notifications from './notifications';

const initialState = /* from local storage or server */

const reducer = combineReducers({ notifications });
const store = createStore(reducer, initialState);

export default store;

You’ll notice that the notifications namespace is defined at the time the store is created, and not by the Redux module that defines the reducer. If the “notifications” reducer name is changed in createStore, all the selectors in the “notifications” Redux module no longer work. Worse, every Redux module needs to be imported in the createStore file before it can be added to the store’s reducer. This doesn’t scale and isn’t good for large apps that rely on code-splitting to incrementally load modules. A large app could have dozens of Redux modules, many of which are only used by a few components and unnecessary for initial render.

Both of these issues can be avoided by introducing a Redux reducer registry.

Redux reducer registry

The reducer registry enables Redux reducers to be added to the store’s reducer after the store has been created. This allows Redux modules to be loaded on-demand, without requiring all Redux modules to be bundled in the main chunk for the store to correctly initialize.

// data/reducerRegistry.js

export class ReducerRegistry {
  constructor() {
    this._emitChange = null;
    this._reducers = {};
  }

  getReducers() {
    return { ...this._reducers };
  }

  register(name, reducer) {
    this._reducers = { ...this._reducers, [name]: reducer };
    if (this._emitChange) {
      this._emitChange(this.getReducers());
    }
  }

  setChangeListener(listener) {
    this._emitChange = listener;
  }
}

const reducerRegistry = new ReducerRegistry();
export default reducerRegistry;

Each Redux module can now register itself and define its own reducer name.

// data/notifications/index.js

import reducerRegistry from '../reducerRegistry';

const initialState = [];
let notificationId = 0;

const reducerName = 'notifications';

const createActionName = name => `app/${reducerName}/${name}`;

// reducer
export default function reducer(state = initialState, action = {}) {
  switch (action.type) {
    case ADD_NOTIFICATION:
      return [...state, { ...action.payload, id: notificationId += 1 }];
    case REMOVE_NOTIFICATION:
      return state.slice(1);
    default:
      return state;
  }
}

reducerRegistry.register(reducerName, reducer);

// selectors
export const selectAllNotifications = state => state[reducerName];
export const selectNextNotification = state => state[reducerName][0];

// actions
export const ADD_NOTIFICATION = createActionName(ADD_NOTIFICATION);
export const REMOVE_NOTIFICATION = createActionName(REMOVE_NOTIFICATION);

// action creators
export const addNotification = payload => ({ payload, type: ADD_NOTIFICATION });
export const removeNotification = () => ({ type: REMOVE_NOTIFICATION });

Next, we need to replace the store’s combined reducer whenever a new reducer is registered (e.g., after loading an on-demand chunk). This is complicated slightly by the need to preserve initial state that may have been created by reducers that aren’t yet loaded on the client. By default, once an action is dispatched, Redux will throw away state that is not tied to a known reducer. To avoid that, reducer stubs are created to preserve the state.

// data/createStore.js

import { combineReducers, createStore } from 'redux';
import reducerRegistry from './reducerRegistry';

const initialState = /* from local storage or server */

// Preserve initial state for not-yet-loaded reducers
const combine = (reducers) => {
  const reducerNames = Object.keys(reducers);
  Object.keys(initialState).forEach(item => {
    if (reducerNames.indexOf(item) === -1) {
      reducers[item] = (state = null) => state;
    }
  });
  return combineReducers(reducers);
};

const reducer = combine(reducerRegistry.getReducers());
const store = createStore(reducer, initialState);

// Replace the store's reducer whenever a new reducer is registered.
reducerRegistry.setChangeListener(reducers => {
  store.replaceReducer(combine(reducers));
});

export default store;

Managing the Redux store’s reducer with a registry should help you better code-split your application and modularize your state management.




lit

The stress test every business needs [electronic resource] : a capital agenda for confidently facing digital disruption, difficult investors, recessions and geopolitical threats / Jeffrey R. Greene, Steve Krouskos, Julie Hood, Harsha Basnayake, William Ca

Greene, Jeffrey R., author




lit

Sustainability in supply chain management (collection) [electronic resource] / Peter A. Soyka, Robert Palevich, Steven M. Leon

Soyka, Peter A., 1958- author




lit

Total quality management [electronic resource] / Poornima M. Charantimath

Charantimath, Poornima M., author




lit

Total quality management and just-in-time purchasing [electronic resource] : their effects on performance of firms operating in the U.S. / Hale Kaynak

Kaynak, Hale, 1956-




lit

Total Quality Management [electronic resource] : Key Concepts and Case Studies / D.R. Kiran

Kiran, D. R., author




lit

Total quality of management [electronic resource] / Tapan K. Bose

Bose, Tapan K., author




lit

U.S. military program management [electronic resource] : lessons learned and best practices / Gregory A. Garrett, Rene G. Rendon

Garrett, Gregory A




lit

Vulnerability management [electronic resource] / Park Foreman

Foreman, Park




lit

Water culture, politics, and management [electronic resource] / India International Centre; introduction by Kapila Vatsyayan

Festival of Water (2004 : India International Centre)




lit

Wise money [electronic resource] : how the smart money invests using the endowment investment approach to minimize volatility and increase control / Daniel Wildermuth

Wildermuth, Daniel